实现:
记录实现在ubuntu上进程保活的过程,此处以保活tg-bot服务为例子
部署
安装bot服务需要的依赖
sudo pip3 install python-telegram-bot requests
创建并编写服务文件
sudo nano /etc/systemd/system/tgbot.service
[Unit]
Description=Telegram Image Bot Service
# 确保在网络准备好后再启动
After=network.target
[Service]
# 使用 root 权限运行
User=root
Group=root
# 指定你的代码所在目录
WorkingDirectory=/data1/telegram_image_bot
# 执行命令:绝对路径运行 python3 和 脚本
ExecStart=/usr/bin/python3 /data1/telegram_image_bot/telegram_bot06.py
# 核心:无论何种原因退出,5秒后自动重启
Restart=always
RestartSec=5
# 终极解决编码问题:强制进程识别 UTF-8
# 此处为执行bot服务时编码需求,其他情况下不需要的
Environment=PYTHONIOENCODING=utf-8
Environment=LANG=en_US.UTF-8
Environment=LC_ALL=en_US.UTF-8
[Install]
# 设置为多用户环境下启动
WantedBy=multi-user.target
ctrl+x 按y保存即可
激活并启动
# 1. 刷新系统配置,让它识别到新的 tgbot 服务
sudo systemctl daemon-reload
# 2. 启动服务
sudo systemctl start tgbot
# 3. 设置为开机自动启动
sudo systemctl enable tgbot
检查是否成功运行
sudo systemctl status tgbot
维护
停止运行
彻底移除监测按顺序执行即可
# 暂停运行
sudo systemctl stop tgbot
# 禁止开机自启
sudo systemctl disable tgbot
# 删除配置文件
sudo rm /etc/systemd/system/tgbot.service
# 刷新配置
sudo systemctl daemon-reload
修改代码
需要修改代码的话修改完成后直接重启
sudo systemctl restart tgbot
暂停服务修改文件(或者按照下面这个修改)
sudo systemctl stop tgbot
# 修改代码
sudo systemctl start tgbot
查看服务bot运行日志
sudo journalctl -u tgbot -f
按ctrl+c退出即可。