我需要使用supervisord创建的用于脚本的进程的进程ID。如果有的话,由supervisord产生的进程不会在其默认目录中创建.pid文件。无论如何获取由Supervisord创建的进程的ID?
如何获取supervisord子进程的进程ID?
我需要使用supervisord创建的用于脚本的进程的进程ID。如果有的话,由supervisord产生的进程不会在其默认目录中创建.pid文件。无论如何获取由Supervisord创建的进程的ID?
如何获取supervisord子进程的进程ID?
使用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
信号。
您现在可以执行以下操作:
sudo supervisorctl pid all
sudo supervisorctl pid myprogramname
欢呼马亭。现在不相关了,这要感谢你早先的回答:)尽管如此,仍然无法获得组命令并重新开始工作。 – user1561108
令人惊讶的是,没有简单的方法来做到这一点。但是,这很有魅力 – JRun