start-stop-daemon은 항상 0(성공)을 반환합니다.

start-stop-daemon은 항상 0(성공)을 반환합니다.

start-stop-daemon자동으로 시작되도록 스크립트를 설정했습니다.

case "$1" in
   start)
      log_begin_msg "starting foo"
      start-stop-daemon --start --chuid nobody --user nobody --pidfile \
      /tmp/foo.pid --startas /usr/local/bin/foo.sh &
      log_end_msg $?

문제는 프로세스가 시작되지 않은 경우에도 항상 0(성공)을 반환한다는 것입니다.

start-stop-daemon반환 코드를 올바르게 캡처하는 방법은 무엇입니까 ?

답변1

누구세요아니요캡처된 반환 코드입니다 start-stop-daemon.

문제는 백그라운드에서 시작하면 올바르게 시작된다는 것입니다. 내 말은 당신이 캡처하는 반환 코드를 의미합니다starting something in background that wants to start something in background.

이 시도:

rm /tmp/not_existent_file &
echo $?

이것은 항상 인쇄됩니다 0.

백그라운드 프로세스의 반환 코드를 얻으려면 해당 프로세스가 종료될 때까지 기다려야 합니다 wait. 예는 다음과 같습니다.

rm /tmp/not_existent_file &
wait $!
echo $?

자체적으로 포크되지 않는 프로세스를 시작하려면 --background스위치를 사용하고 &줄 끝에서 제거해 보세요 start-stop-daemon.

바라보다시작-중지-데몬 맨페이지

관련 정보