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

问题描述 投票:14回答:3

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

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

pid supervisord child-process
3个回答
16
投票

从主管版本3开始,您可以使用supervisorctl pid <name>命令列出托管进程的pids:

supervisorctl pid programname

使用supervisorctl pid all获取所有托管进程的新行分隔的pids列表。

对于较旧的supervisord版本,你被supervisord status困住,但有一点awksedpaste按摩,你可以提取那些pids作为其他命令的输入可接受:

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

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


12
投票

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

sudo supervisorctl pid all
sudo supervisorctl pid myprogramname

0
投票

系统centos7

命令:

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

文件/tmp/supervisord.pid记录了supervisord id。

你可以通过ps -ef|grep ${fatherProcess}获得孩子的过程

© www.soinside.com 2019 - 2024. All rights reserved.