我需要使用supervisord创建的进程的进程ID才能在脚本中使用。由supervisord生成的进程不会在默认目录中创建.pid文件(如果有的话)。
如何获取supervisord子进程的进程ID?
答案 0 :(得分:16)
使用supervisorctl status
列出托管流程的pid
。
通过少量awk
,sed
和paste
按摩,您可以提取这些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}