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

这个问题的核心在于:当你在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  # 取消开机自启
相关推荐
云贝贝贝3 天前
腾讯云 TDSQL(MySQL 版)性能优化与慢查询排障实战 6 招
运维·腾讯云
小葱运维3 天前
命名与环境规范
运维·开源·云计算
workflower3 天前
SSH(Struts+Spring+Hibernate)
人工智能·机器学习·机器人·云计算·无人机
thinking_talk3 天前
WorkBuddy应用生成背后的数据层:腾讯云PG
postgresql·腾讯云·云数据库
不吃香菜kkk、3 天前
CI/CD(GitOps)学习与部署手册
运维·云原生·容器·kubernetes·云计算·jenkins·argocd
金融小师妹3 天前
AI金融能力评估:18个主流模型金融问题平均错误率达57%
人工智能·云计算·逻辑回归·深度优先
whyutianict_vv3 天前
云计算运维培训课程技术栈拆解:从 Linux 网络到 AI 推理的五层能力分层
linux·云计算
ZStack开发者社区3 天前
ZSvirt 开源月报第 1 期 · Around the World
开源·云计算·vmware·虚拟化
QYRdata4 天前
ICMP云管理平台2026-2032年CAGR达13.5% 未来发展潜力凸显
云计算·服务发现
天翼云开发者社区4 天前
央国企大模型安全合规应用新标杆!中国电信天翼云推出央企可信Token专区!
云计算·大模型推理服务