systemd는 충돌 후에만 자동으로 서비스를 다시 시작합니다.

systemd는 충돌 후에만 자동으로 서비스를 다시 시작합니다.

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=.

관련 정보