这两天,需要远程部署一个 python 程序机器人,要求始终在线,但也不能同时由多个实例在运行.
因此需要分步实现:
- 定期检测 python 程序机器人是否在线?如果不在线,需要重启
- 定期检测 python 程序机器人是否存在多个实例同时在线?关闭多余实例.
比如 python 程序机器人的程序文件为:/home/downvoter/bot.py
编写一个控制的shell程序:/home/downvoter/bot.sh
#! /bin/bash
source /home/downvoter/.bashrc
case "$(pgrep -f "python /home/downvoter/bot.py" | wc -w)" in
0) echo "Starting bot: $(date)" >> /var/log/bot.log
python /home/downvoter/bot.py &
;;
1) echo "Restarting bot: $(date)" >> /var/log/bot.log
kill $(pgrep -f "python /home/downvoter/bot.py")
python /home/downvoter/bot.py &
;;
*) echo "Removed double bot and restarting: $(date)" >> /var/log/bot.log
kill $(pgrep -f "python /home/downvoter/bot.py")
python /home/downvoter/bot.py &
;;
esac
测试成功
牛!真好我们的机器人也要远程部署,可以借鉴一下这个神操作.
!shop
你好鸭,downvoter!
@chinesebi给您叫了一份外卖!
埃塞俄比亚咖啡
吃饱了吗?跟我猜拳吧! 石头,剪刀,布~由 @wongshiying 老王 迎着台风 开着宝马 给您送来
如果您对我的服务满意,请不要吝啬您的点赞~
@onepagex
石头
You lose! 你输了!愿赌服输,请给我点赞~