저는 systemd를 사용하여 처음으로 unicorn을 배포하고 있습니다(실제로 systemd를 사용하는 것은 처음입니다). 그리고 unicorn의“다운타임 제로 업그레이드” 트릭또는 기본적으로 다음과 같습니다.
USR2
메인 프로세스로 보내기- 그러면 새 마스터와 작업자가 생성되고, 이전 pidfile의 이름이 바뀌며, 새 pidfile이 새 마스터의 PID를 반영하게 됩니다.
- 이전 마스터에게 QUIT 보내기
- 이로 인해 이전 작업자가 현재 요청을 처리하고 종료되고 이전 마스터가 죽게 됩니다.
한 가지를 제외하고는 모두 잘 작동합니다. systemd의 로그 캡처(for systemctl status
)가 새 프로세스의 출력을 볼 수 없습니다. 전환 과정이나 다른 것에 관여하지 않기 때문인 것 같아요.
체계예새 호스트의 PID를 확인하고 올바르게 추적하세요.
유니콘의 구성에서 이것을 설정하고 마스터를 HUP(마스터의 PID를 변경하지 않음)만 하면 preload_app = false
모든 것이 괜찮습니다. 그러나 실제로 유니콘을 업그레이드하려는 상황은 해결되지 않습니다.
중요한 경우 유니콘 데몬이 없고 Type=simple
장치 구성 파일에 있습니다.
새로운 마스터의 로그 출력에 자신을 추가하도록 systemd를 얻을 수 있는 방법이 있습니까?