分叉,守护和监视python脚本

时间:2017-05-15 08:22:10

标签: python linux daemon

我的debian服务器上有一个python脚本sc.py。

我想:

  • 将其作为守护程序运行并使其无限期运行
  • 在//
  • 中运行N次(作为子流程,子项,分叉)
  • 监控整个过程(为了重新启动任何死亡过程)

你知道能让我这样做的软件吗?

我不知道我是否需要在python端寻找解决方案(任何python模块或配置),或者某个地方是否有debian软件包可以完成这项工作?

3 个答案:

答案 0 :(得分:2)

您可以使用supervisord

它为您守护Python进程,并处理子进程。

答案 1 :(得分:1)

如果这是一次性任务(也就是说,您没有创建软件产品),我会快速使用shell脚本和终端多路复用器(如screen)的组合。要重新启动死亡的进程(即,他们发出了0以外的退出代码),只需use the shell

启动您的流程,例如:

for i in n/*; do
    screen -d -m -L -S $i -t $i until python sc.py $i; do echo "Crashed with exit code $?.  Respawning.." >&2 ; sleep 1 ; done
done

这会

  • 为运行脚本的子目录n/中的每个文件创建一个新的屏幕会话
  • 重启你的python脚本,除非它成功退出(使用Bash' s until
  • 将标题(-t)和会话名称(-S)设置为输入文件名
  • 如果出现问题(-L),请打开所有输出的记录以供日后检查。

然后,您可以使用screen -list等常规屏幕命令列出所有正在运行的任务,并使用screen -r <session name>查看正在运行的会话输出。

答案 2 :(得分:1)

我偶然发现的另一位流程经理是circus

看起来更冒险,如果这是你的事情;)

网页界面比supervisord更丰富:看到一些不错的screenshots