감독 된 하위 프로세스 중지
supervisord가 직면 한 문제 중 하나는 다른 프로세스를 생성하는 명령이있을 때 supervisord가이를 죽일 수 없다는 것입니다.
예를 들어 정상적으로 실행될 때 다음과 같은 Java 프로세스가 있습니다.
$ zkServer.sh start-foreground
$ ps -eaf | grep zk
user 30404 28280 0 09:21 pts/2 00:00:00 bash zkServer.sh start-foreground
user 30413 30404 76 09:21 pts/2 00:00:10 java -Dzookeeper.something..something
감독 된 구성 파일은 다음과 같습니다.
[program:zookeeper]
command=zkServer.sh start-foreground
autorestart=true
stopsignal=KILL
여러 자식이있는 이러한 종류의 프로세스는에서 중지 할 때 감독자가 잘 처리하지 못합니다 supervisorctl
. 따라서 supervisord에서 이것을 실행하고 supervisorctl에서 중지하려고하면 최상위 프로세스 만 종료되고 실제 Java 프로세스는 종료되지 않습니다.
Rick Hanlon II에서도 동일한 문제가 발생했습니다. https://coderwall.com/p/4tcw7w
supervisord가 상위 프로세스뿐만 아니라 하위 프로세스도 중지하려면 프로그램 섹션에서 stopasgroup = true 옵션을 설정해야합니다.
예제는 다음과 같습니다.
[program:some_django]
command=python manage.py runserver
directory=/dir/to/app
stopasgroup=true
또한 "stopasgroup"기능이없는 이전 supervisord 패키지가있을 수 있습니다. Raspberry Pi에서 다음 Debian 패키지를 시도했습니다.
- supervisor_3.0a8이 작동하지 않습니다.
- supervisor_3.0b2-1이 예상대로 작동합니다.
supervisord가 호출 한 기본 bash 스크립트에서 초기에 다음을 수행하면 문제가 해결되었습니다.
trap "kill -- -$$" EXIT
이렇게하면 supervisord에 의해 종료되는 경우와 같이 기본 스크립트가 종료 될 때 전체 프로세스 그룹이 종료됩니다.
SIGKILL을 전체 프로세스 그룹에 보내는 기능이 최근 supervisord에 추가되었습니다. 이 글은 다음의 github에 있지만 아직 공식적으로 발표되지.
파일에서 프로세스 ID를 사용할 수있는 경우 pid-proxy 프로그램을 사용할 수 있습니다.
다음 기사에는 문제에 대한 심층적 인 논의가 있습니다.
http://veithen.github.io/2014/11/16/sigterm-propagation.html
이 감독자 프로그램 구성을 시도하십시오.
stopasgroup=true
killasgroup=true
stopsignal=INT
/conf.d/your-configuration.conf
파일 에서 우선 순위를 사용할 수도 있습니다 . 예를 들어 zookeeper를 먼저 실행 한 다음 kafka를 실행하려면 두 개의 프로그램을 지정할 수 있습니다.
낮은 우선 순위는 프로그램이 먼저 시작되고 마지막에 중지됨을 의미합니다.
참조 URL : https://stackoverflow.com/questions/9090683/supervisord-stopping-child-processes
'programing' 카테고리의 다른 글
.gitignore는 모든 파일을 무시하고 * .foo를 재귀 적으로 허용합니다. (0) | 2021.01.11 |
---|---|
아무것도 반환되지 않을 때 JSON 디코딩 오류 처리 (0) | 2021.01.11 |
'grunt serve'가 'No Bower 구성 요소를 찾을 수 없음'을 표시하는 원인은 무엇입니까? (0) | 2021.01.10 |
Mac OSX에서 터미널을 사용하여 이미지 크기를 조정하는 방법은 무엇입니까? (0) | 2021.01.10 |
코드 복사 / 붙여 넣기시 Eclipse 정지 (0) | 2021.01.10 |