내 서버 중 하나에서 실행해야 하는 앱(단일 바이너리 형식)이 있고 해당 앱의 수명 주기를 적절하게 제어할 수 있기를 원합니다. 내가 원하는 것은 다음과 같습니다.
- 간단한 하나의 명령으로 시작/중지/재시작
- 가능한 한 적은 구성으로, monit과 같은 큰 것을 설정하거나 500줄의 쉘 스크립트를 작성하고 싶지 않습니다.
- 로그 파일에서 stdout/stderr/failure를 처리합니다.
- 프로세스가 실행 중인 경우 pid 파일만 있는 방식으로 pidfile을 관리합니다(이것은 쉘 스크립트를 올바르게 사용하여 직접 수행하기가 정말 어려운 것 같습니다).
- (선택 과목)바이너리가 충돌하면 뭔가를 할 수 있습니다
- (선택 과목)서버가 재부팅되거나 애플리케이션이 충돌하면 자동으로 시작됩니다.
제가 찾고 있는 것은 많은 구성 없이도 즉시 Ubuntu Server와 이상적으로 작동하는 경량 솔루션입니다.
답변1
우분투의 경우갑자기 나타나다당신이 찾고있는 것입니다.
https://askubuntu.com/questions/19320/how-to-enable-or-disable-services 이 AskUbuntu 질문에는 현재 수행 중인 작업을 시작하는 데 대한 훌륭한 정보가 있습니다.
간단히 말해서 다음을 /etc/init/mybinary.conf에 복사하십시오.
description "My Binary"
author "Jakub Arnold <[email protected]>"
start on (local-filesystems and net-device-up)
stop on runlevel [!2345]
respawn
pre-start script
RUN_MODE="daemons"
end script
exec mybinary
이를 통해 다음을 수행할 수 있습니다.
- '서비스 마이바이너리 시작/중지/상태'를 통한 서비스 관리
- PID 파일 관리
- 충돌 시 리스폰
- 부팅 시 실행
- /var/log/upstart/mybinary.log에 로깅
필요한 모든 정보가 담긴 Upstart 요리책:http://upstart.ubuntu.com/cookbook/
여담으로, Ubuntu가 Systemd를 위해 Upstart를 폐기할 계획이지만 로드맵이 제시되어 있지 않다는 점을 언급해야 한다고 생각합니다.