I need the process ID of processes created using supervisord for use in a script. Processes spawned by supervisord don't create .pid files in their default directories, if at all.
How do I get the process ID of a supervisord child process?
I need the process ID of processes created using supervisord for use in a script. Processes spawned by supervisord don't create .pid files in their default directories, if at all.
How do I get the process ID of a supervisord child process?
As of supervisor version 3 you can use the supervisorctl pid <name>
command to list pid
s of managed processes:
supervisorctl pid programname
Use supervisorctl pid all
to get a newline-separated list of pid
s of all managed processes.
For older supervisord versions, you are stuck with supervisord status
, but with a little awk
, sed
and paste
massaging, you can extract those pid
s to be acceptable as input to other commands:
echo `bin/supervisorctl status | grep RUNNING | awk -F' ' '{print $4}' | sed -e 's/,$//' | paste -sd' '`
would list all pids of running programs as a space-separated list. Replace echo
with a kill -HUP
command to send them all the SIGHUP
signal, for example.
You can now do the following:
sudo supervisorctl pid all
sudo supervisorctl pid myprogramname
System centos7
command:
ps -ef|grep $(cat /tmp/supervisord.pid)|grep -v grep |grep -v supervisord|awk '{print $2}'
The file /tmp/supervisord.pid
records the supervisord id.
You can get child process by ps -ef|grep ${fatherProcess}
© 2022 - 2024 — McMap. All rights reserved.