【发布时间】:2017-05-15 08:22:10
【问题描述】:
我的 debian 服务器上有一个 python 脚本 sc.py。
我想要:
- 将其作为守护程序运行并使其无限期运行
- 在 // 中运行 N 次(作为子进程、子进程、分叉)
- 监控整个进程(以重新启动任何垂死的进程)
你知道可以让我这样做的软件吗?
我不知道我是否必须在 python 端(任何 python 模块或配置)寻找解决方案,或者是否有一个 debian 包可以完成这项工作?
【问题讨论】:
我的 debian 服务器上有一个 python 脚本 sc.py。
我想要:
你知道可以让我这样做的软件吗?
我不知道我是否必须在 python 端(任何 python 模块或配置)寻找解决方案,或者是否有一个 debian 包可以完成这项工作?
【问题讨论】:
您可以为此使用supervisord。
它为您守护 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/ 中的每个文件创建一个新的屏幕会话,until)-t) 和会话名称 (-S) 设置为输入文件名,-L),则打开所有输出的日志记录以供日后检查。然后您可以使用普通的屏幕命令,例如 screen -list 列出所有正在运行的任务,并使用 screen -r <session name> 查看正在运行的会话输出。
【讨论】:
【讨论】: