我需要使用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