分叉、守护和监视python脚本

2024-10-06 12:11:33 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我想:

  • 以守护进程的身份运行它并使其无限期运行
  • 在//
  • 监控整个过程(以便重新启动任何染色过程)

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

我不知道我是否必须在python端寻找解决方案(任何python模块或配置),还是在某处有一个debian包可以完成这个任务?在


Tags: 模块py服务器脚本软件进程过程公司
3条回答

您可以使用^{}进行此操作。在

它为您监控Python进程,还处理子进程。在

如果这是一个一次性任务(也就是说,您不是在创建软件产品),我会快速地使用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的^{}
  • 将标题(-t)和会话名(-S)设置为输入文件名
  • 并打开所有输出的日志记录,以便以后在出现错误时进行检查(-L)。在

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

我偶然发现的另一个流程管理器是^{}。在

如果你喜欢的话,它看起来更有冒险精神;)

而且web界面比supervisord的更丰富:请看一些漂亮的screenshots。在

相关问题 更多 >