start-stop-daemon总是返回成功

时间:2016-03-16 22:15:17

标签: bash output daemon

我在BASH脚本中有以下代码:

 start-stop-daemon --start --quiet --background \
    --startas /bin/bash -- -c "$CMD; exec echo $?> $FILE"

其中CMD是一些命令字符串,FILE是输出文件位置。但是出于某种原因,FILE中的输出始终为0,即使它应该给出不同的数字(1表示错误等)。

为什么会这样,我该如何解决?

2 个答案:

答案 0 :(得分:2)

您的$?会在当前shell的上下文中与$CMD$FILE一起展开。

要解决此问题,您必须像\$?一样逃避它,即

...  /bin/bash -c "$CMD; exec echo \$? >$FILE"

答案 1 :(得分:0)

exec echo $?如果您的上一个命令成功运行,这将打印0。这就是为什么它在文件中打印0。你想要达到什么目的。