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
.
바라보다시작-중지-데몬 맨페이지