참고 : 서비스 작성 방법 과이 특별한 문제를 피하는 방법을 설명하는 매체에 대한 기사를 작성했습니다 : systemd로 Linux 서비스 작성 .
원래 질문 :
작업자 스크립트를 항상 작동시키기 위해 systemd를 사용하고 있습니다.
[Unit]
Description=My worker
After=mysqld.service
[Service]
Type=simple
Restart=always
ExecStart=/path/to/script
[Install]
WantedBy=multi-user.target
몇 분 후에 스크립트가 정상적으로 종료되면 재시작이 제대로 작동하지만 시작시 반복적으로 실행되지 않으면 시작 systemd
시도를 포기 한다는 것을 알았 습니다.
Jun 14 11:10:31 localhost systemd[1]: test.service: Main process exited, code=exited, status=1/FAILURE
Jun 14 11:10:31 localhost systemd[1]: test.service: Unit entered failed state.
Jun 14 11:10:31 localhost systemd[1]: test.service: Failed with result 'exit-code'.
Jun 14 11:10:31 localhost systemd[1]: test.service: Service hold-off time over, scheduling restart.
Jun 14 11:10:31 localhost systemd[1]: test.service: Start request repeated too quickly.
Jun 14 11:10:31 localhost systemd[1]: Failed to start My worker.
Jun 14 11:10:31 localhost systemd[1]: test.service: Unit entered failed state.
Jun 14 11:10:31 localhost systemd[1]: test.service: Failed with result 'start-limit'.
마찬가지로, 내 작업자 스크립트의 종료 상태로 여러 번 실패 할 경우 255
, systemd
다시 시작하려고 포기 :
Jun 14 11:25:51 localhost systemd[1]: test.service: Failed with result 'exit-code'.
Jun 14 11:25:51 localhost systemd[1]: test.service: Service hold-off time over, scheduling restart.
Jun 14 11:25:51 localhost systemd[1]: test.service: Start request repeated too quickly.
Jun 14 11:25:51 localhost systemd[1]: Failed to start My worker.
Jun 14 11:25:51 localhost systemd[1]: test.service: Unit entered failed state.
Jun 14 11:25:51 localhost systemd[1]: test.service: Failed with result 'start-limit'.
강제 할 수있는 방법이 있나요 systemd
위해 항상 몇 초 후에 다시 시도는?
StartLimitIntervalSec=0
and voilà.