업 스타트로 다른 정지 / 재시동 신호를 정의하는 방법 신호 처리 API가 있습니다.

다양한 애플리케이션 프로세스를 관리하기 위해 모든 시스템을 upstart를 사용하도록 변환하기 시작했습니다. 내가 끊임없이 누락 한 가지는 프로세스 stop또는 restart이벤트 에 다른 신호를 보낼 수 있다는 것입니다 .

예를 들어 Unicorn으로 웹 프로세스를 실행합니다 . 유니콘에는 훌륭한 신호 처리 API가 있습니다. 프로세스를 정상적으로 다시로드하려면 마스터 pid에 USR2 신호를 보냅니다. 정상적으로 종료하려면 QUIT 명령을 보냅니다. TERM (업 스타트의 기본 정지 신호)은 즉시 종료됩니다.

또 다른 예는 Resque를 사용하는 것 입니다. 작업자를 정상적으로 종료하려면 QUIT 신호를 보냅니다. TERM 신호는 작업자의 자식이 포크되었는지 여부에 관계없이 즉시 종료됩니다.

upstart는 맞춤형 신호를 지원합니까? 나는 어디에서나 그것을 찾을 수없는 것처럼 보입니다.



답변

Ubuntu 10.04에는 관련 신호 및 시간 초과 값을 구성 하는 kill signalkill timeout 매개 변수 가있는 시작 버전 0.6.6이 포함되어 있습니다. “재로드”신호는에 하드 코딩됩니다 SIGHUP.

최신 버전의 매개 변수upstart 도입 -자세한 내용은이 질문에 대한 다른 답변을 참조하십시오.reload signal


답변

upstart v1.10.0부터 “reload signal”을 정의 할 수 있습니다.

https://launchpad.net/upstart/1.x/1.10.0

이 버전은 v13.10부터 우분투에서 사용할 수 있습니다 …이 지침을 사용하여 ec2 인스턴스를 업그레이드했습니다.

/ubuntu/302762/upgrading-13-04-to-13-10

rails + puma를 사용하고 /etc/init/app-1.conf 파일에서이 지시문을 사용하여 정상적으로 다시로드합니다.

reload signal SIGUSR2