스크립트에서 사용하기 위해 supervisord를 사용하여 생성 된 프로세스의 프로세스 ID가 필요합니다. supervisord에 의해 생성 된 프로세스는 .pid 파일을 기본 디렉토리에 작성하지 않습니다.어쨌든 Supervisord에서 만든 프로세스의 ID를 얻으시겠습니까?
슈퍼 바이저 하위 프로세스의 프로세스 ID는 어떻게 얻습니까?
스크립트에서 사용하기 위해 supervisord를 사용하여 생성 된 프로세스의 프로세스 ID가 필요합니다. supervisord에 의해 생성 된 프로세스는 .pid 파일을 기본 디렉토리에 작성하지 않습니다.어쨌든 Supervisord에서 만든 프로세스의 ID를 얻으시겠습니까?
슈퍼 바이저 하위 프로세스의 프로세스 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