如何让腾讯云应用服务器的程序一直运行?

这个问题的核心在于:当你在SSH终端直接运行程序时,程序是与当前终端会话绑定的。一旦你关闭SSH窗口或网络波动导致连接断开,程序就会收到终止信号并退出。

下面介绍一个生产环境的标准做法,程序会随系统启动,并由系统监控。

1.创建服务配置文件:

复制代码
sudo nano /etc/systemd/system/video_relay.service

2.写入以下配置(根据你的实际路径和用户名调整):

复制代码
[Unit]
Description=ESP32 Video Relay Server
After=network.target

[Service]
Type=simple
User=ubuntu
WorkingDirectory=/home/ubuntu/video_relay
ExecStart=/usr/bin/python3 /home/ubuntu/video_relay/video_relay_server.py
Restart=always  # 程序意外退出时自动重启
RestartSec=5    # 重启前等待5秒
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=video_relay

[Install]
WantedBy=multi-user.target

3.保存退出 (Ctrl+X, Y, 回车)

当你按Ctrl+X,然后按Y后,应该会出现文件名确认界面。此时需要按回车键(Enter)才能真正保存。

这里说下其他的两种在服务器编辑的方法

方法1:使用tee命令直接创建(最简单)

复制代码
sudo tee /etc/systemd/system/video_relay.service > /dev/null << 'EOF'
[Unit]
Description=ESP32 Video Relay Server
After=network.target

[Service]
Type=simple
User=ubuntu
WorkingDirectory=/home/ubuntu/video_relay
ExecStart=/usr/bin/python3 /home/ubuntu/video_relay/video_relay_server.py
Restart=always
RestartSec=5
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=video_relay

[Install]
WantedBy=multi-user.target
EOF

方法2:使用cat命令

复制代码
sudo cat > /etc/systemd/system/video_relay.service << 'EOF'
[Unit]
Description=ESP32 Video Relay Server
After=network.target

[Service]
Type=simple
User=ubuntu
WorkingDirectory=/home/ubuntu/video_relay
ExecStart=/usr/bin/python3 /home/ubuntu/video_relay/video_relay_server.py
Restart=always
RestartSec=5
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=video_relay

[Install]
WantedBy=multi-user.target
EOF

4.重新加载 systemd 配置并启用服务:

复制代码
sudo systemctl daemon-reload
sudo systemctl start video_relay.service    # 立即启动
sudo systemctl enable video_relay.service   # 设置开机自启

5.查看服务状态和日志:

复制代码
sudo systemctl status video_relay.service
sudo journalctl -u video_relay.service -f   # 查看实时日志(类似你的调试输出)

6.管理命令:

复制代码
sudo systemctl stop video_relay.service     # 停止
sudo systemctl restart video_relay.service  # 重启
sudo systemctl disable video_relay.service  # 取消开机自启
相关推荐
逐流人20 小时前
手工建集群到全自动发布:k8s集群部署与DevOps流水线整合实战
ci/cd·云原生·kubernetes·云计算·devops
wz97541 天前
走进云计算:从硬件到云平台,读懂数字化底层基石
云计算
Kari112 天前
企业大模型RAG知识库从0到1搭建指南:腾讯云ADP+JOTO实战
人工智能·云计算·腾讯云
Kari112 天前
企业级智能体平台怎么选:腾讯云ADP与其他主流技术路线的架构对比
架构·云计算·腾讯云
无所畏俱的老尹4 天前
Agent 落地为什么需要影子对照:同输入只读双跑、写动作变提案、差异报警,比直接切全量更安全
人工智能·机器学习·云计算·aigc·devops
逐流人4 天前
DevOps 入门实战(一):从 CI/CD 概念到 Jenkins 自动构建部署
运维·云原生·云计算·jenkins·devops
SaaS_Product5 天前
OneDrive中的文件批量迁移到Zoho网盘
经验分享·云计算·saas·onedrive
Zhang2857326 天前
跨境业务选AWS区域避坑指南:美东、美西、新加坡、东京怎么选?
云计算·aws
DolitD7 天前
UE像素流与云渲染技术方案对比分析
3d·云原生·ue5·云计算·图形渲染
天府云创7 天前
面向 Personal Agent 增强长期记忆与个性化能力,阿里云升级Memory 服务
阿里云·云计算·memory·agent智能体·长期记忆·personal agent