시작 시 스크립트를 실행하고 싶습니다. 스크립트는 재귀적이며 자신을 호출합니다.
systemd 장치를 추가하면 실행 중이지만 DefaultTimeoutStartSec
.
아래는 제가 만든 서비스 파일입니다
[Unit]
Description = My Desc
After = network.target
[Service]
Type = forking
ExecStart = /root/my_recursive_script.sh
[Install]
WantedBy = multi-user.target
infinity 를 추가하면 이 서비스를 작동시킬 수 있다는 것을 알고 있지만 TimeoutSec
이것이 해결 방법이 될 것입니다. 내가 서비스를 실행할 때
systemctl start myservice.service
시간이 초과될 때까지 커서를 떠나지 않습니다.
- 시스템 단위가 재귀 스크립트와 함께 작동하도록 하는 올바른 방법은 무엇입니까?
- 데몬처럼 실행 가능하게 만들려면 스크립트를 변경해야 합니까?
답변1
문제는 서비스 유형을 forking
. Systemd는 ExecStart
계속하기 전에 백그라운드로 포크하기를 기다리고 있습니다 . 유형을 simple
.see 로 변경해야 합니다 .수동