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 $?

如果您想启动不自行分叉的进程,请尝试使用--backgroundswitch 并&从行尾删除start-stop-daemon

启动-停止-守护程序联机帮助页

相关内容