无论如何得到Supervisord创建的进程的ID?

时间:2012-12-01 19:20:41

标签: pid supervisord child-process

我需要使用supervisord创建的进程的进程ID才能在脚本中使用。由supervisord生成的进程不会在默认目录中创建.pid文件(如果有的话)。

如何获取supervisord子进程的进程ID?

3 个答案:

答案 0 :(得分:16)

使用supervisorctl status列出托管流程的pid

通过少量awksedpaste按摩,您可以提取这些pid作为其他命令的输入:

echo `bin/supervisorctl status | grep RUNNING | awk -F' ' '{print $4}' | sed -e 's/,$//' | paste -sd' '`

会将所有正在运行的程序的pid列为以空格分隔的列表。例如,将echo替换为kill -HUP命令,将所有SIGHUP信号发送给他们。

答案 1 :(得分:11)

您现在可以执行以下操作:

sudo supervisorctl pid all
sudo supervisorctl pid myprogramname

答案 2 :(得分:0)

系统centos7

命令:

ps -ef|grep $(cat /tmp/supervisord.pid)|grep -v grep |grep -v supervisord|awk '{print $2}'

文件/tmp/supervisord.pid记录受监管的ID。

您可以通过ps -ef|grep ${fatherProcess}

获取子进程