저는 아마존 리눅스를 사용하고 있습니다. 서비스를 시작하고 중지하는 bash로 작성된 스크립트가 있습니다.
/etc/init.d/wildfly
예를 들어, 다양한 런레벨에는 스크립트 시작 및 중지를 보장하는 심볼릭 링크가 있습니다.
/etc/rc.d/rc3.d/S80wildfly
/etc/rc.d/rc2.d/S80wildfly
하지만 제 질문은, 서비스가 실패할 경우 자동으로 다시 시작되도록 하려면 어떻게 해야 합니까?입니다. CentOS에서 지시문을 사용하여 파일(예: "wildfly.service")을 생성할 수 있다는 내용을 읽었습니다.
Restart=always
RestartSec=3
Amazon Linux에서 이에 상응하는 지침은 어디에 있습니까?
답변1
아마존 리눅스 2
Amazon Linux 버전이 2.0 이상인 경우 기본적으로 systemd가 있습니다. 이 경우 CentOS에서 사용하는 것과 동일한 단위 파일 및 다시 시작 지침을 사용할 수 있어야 합니다.
아마존 리눅스 AMI
Amazon Linux AMI를 실행하는 경우 별도의 하이퍼바이저를 사용하여 프로세스를 모니터링하거나(poige에서 언급한 대로) /etc/inittab을 사용해야 합니다.
예를 들어, sysvinit가 프로세스를 자동으로 다시 시작하도록 하려면 /etc/inittab에 다음을 추가하십시오:
# Start and respawn process
mydaemon:2345:respawn:/path/to/executable argument1 argument2
이는 sysvinit에게 실행 수준 2, 3, 4, 5에서 프로세스를 시작하고 종료 시 다시 시작하도록 지시합니다.
또한 시작 시 실행되는 실행 파일 주위에 일부 명령을 추가하려는 경우 실행 파일 경로는 포그라운드에서 프로그램을 실행하는 스크립트를 참조할 수 있습니다.
답변2
저는 아마존 리눅스를 사용하고 있습니다.
알겠습니다. 입력하세요man init
그것에 대해 새로운 것이 있다면 systemd
그것이 바로 그것이라는 것을 알게 될 것입니다. 그래서 당신의 qn은몇 가지 질문에 대한 답변이 완료되었습니다..
지나치게 엔지니어링되었다고 생각한다면 systemd
(실제로 우리 중 많은 사람들이 그렇게 생각합니다) 고대 데몬 도구나 이와 유사한 도구(runit, Supervisord)를 사용해 볼 수 있습니다. 하지만 준비하세요. Amazon Linux와 함께 제공되는 표준 리포지토리에 없을 수도 있습니다.