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

这个问题的核心在于:当你在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  # 取消开机自启
相关推荐
szephyr18 小时前
腾讯云 ADP 智能体的 Skills 版本回滚总是回到旧配置,是缓存没清还是版本管理没开?
java·缓存·腾讯云
燐妤21 小时前
腾讯云 Ubuntu 24.04 + Docker 同时部署多个 Python Web 项目:没有域名也能用 IP 访问
ubuntu·docker·腾讯云
骇客野人1 天前
阿里云运维手册(通用生产版|云上运维标准化文档)
运维·阿里云·云计算
Benszen2 天前
云计算基础-13:Linux网络管理实战-1
linux·运维·云计算
szephyr2 天前
腾讯云 ADP 智能体的 Skills 配置变更后没有走灰度,直接全量替换出了问题怎么定位?
java·前端·腾讯云·腾讯云adp
聚搜云——JuSouClouD2 天前
广州阿里云代理商:多 Agent 协同异常 三大核心问题解析
网络·阿里云·云计算
酷可达拉斯3 天前
Linux操作系统-升级OpenSSH修复漏洞
linux·运维·服务器·云计算
AAA@峥3 天前
K8s 配置管理实战:ConfigMap 与 Secret 完整使用指南
kubernetes·云计算
zero_70323 天前
第二次作业 实验
网络协议·云计算·ensp
聚搜云——JuSouClouD3 天前
深圳阿里云代理商:OpenTelemetry 统一观测日志指标链路接入实战
阿里云·云计算