0을 반환하지 않는 경우에만 systemd가 서비스를 자동으로 다시 시작하도록 할 수 있습니까? 내가 아는 한, 적절한 종료가 발생하면 서비스는 0을 반환합니다. 예를 들어 사용자가 적극적으로 서비스를 종료하는 경우(예: 프로그램 닫기)입니다. 수동으로 서비스를 종료할 때 서비스를 다시 시작하지 않도록 systemd에 지시하고 싶습니다. 그게 가능합니까?
답변1
Restart=on-failure
예, 조직 내에서 사용할 수 있습니다 Service
.
~에서시스템 문서(에서도 사용 가능 man 5 systemd.service
):
다시 시작 =
[...]
로 설정하면
on-failure
프로세스가 0이 아닌 종료 코드로 종료될 때 서비스가 다시 시작되고, 작업(예: 서비스 다시 로드)이 발생할 때 신호(코어 덤프 포함, 위의 4개 신호 제외)에 의해 종료됩니다. 및 구성된 감시 시간 초과가 트리거되는 경우. on-abnormal로 설정하면 신호(코어 덤프 포함, 위 4개 신호 제외)에 의해 프로세스가 종료되거나, 작업 시간이 초과되거나, 감시 시간 초과가 발생하면 서비스가 다시 시작됩니다.[...]
on-failure
장기간 실행되는 서비스의 경우 자동으로 오류 복구를 시도하여 안정성을 높이도록 설정하는 것이 좋습니다 .on-abnormal
또 다른 옵션은 자체적으로 종료하도록 선택할 수 있는 서비스를 위한 것입니다(즉시 다시 시작하지 않음) .
systemctl stop
현재 프로세스를 수동으로 종료하는 방법 대신 명시적으로 systemd에 서비스를 중지하도록 지시하여 모든 설정을 우회할 수 있습니다 Restart=
.