ubuntu18.04 上部署自动重启的 python 程序机器人

By @downvoter1/28/2020hive-180932

这两天,需要远程部署一个 python 程序机器人,要求始终在线,但也不能同时由多个实例在运行.

0.jpg

因此需要分步实现:

  1. 定期检测 python 程序机器人是否在线?如果不在线,需要重启
  2. 定期检测 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

测试成功
屏幕快照 2020-01-28 下午3.54.19.png

comments