我已设置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
switch 并&
从行尾删除start-stop-daemon
。