如何告知Linux守护进程的状态

如何告知Linux守护进程的状态,linux,bash,daemon,Linux,Bash,Daemon,我们有一个c语言的Linux守护进程和一个bash脚本来启动它。由于某些配置文件错误,守护进程有时无法启动,但脚本报告守护进程已成功启动。脚本的一个片段如下所示,有人能告诉我脚本有什么问题吗 ... case "$1" in start) echo -n "Starting Demo Daemon: " sudo -u demouser env DEMO_HOME=$DEMO_HOME /usr/local/demouser/bin/democtl startup > /dev/null

我们有一个c语言的Linux守护进程和一个bash脚本来启动它。由于某些配置文件错误,守护进程有时无法启动,但脚本报告守护进程已成功启动。脚本的一个片段如下所示,有人能告诉我脚本有什么问题吗

...
case "$1" in
start)
echo -n "Starting Demo Daemon: "
sudo -u demouser env DEMO_HOME=$DEMO_HOME /usr/local/demouser/bin/democtl startup > /dev/null 2> /dev/null
if [ "$?" = "0" ]; then
    echo_success
else
    echo_failure
fi
echo
;;
...

谢谢

我觉得脚本没有任何问题,如果无法正确启动,守护进程有责任返回非零退出状态,并根据这些状态,脚本将显示消息。(我认为是这样的)

我觉得脚本没有任何问题,如果无法正确启动,守护进程有责任返回非零退出状态,并且基于这些状态,脚本将显示消息。(我认为确实如此)

您可以在脚本中添加以下行以获取Linux守护进程的运行状态

status=`ps -aef |grep "\/usr\/local\/demouser\/bin\/democtl" |grep -v grep|wc -l`
if [ "$status" = "1" ]; then
  echo_success
else
  echo_failure
fi

您可以在脚本中添加以下行以获取Linux守护程序的运行状态

status=`ps -aef |grep "\/usr\/local\/demouser\/bin\/democtl" |grep -v grep|wc -l`
if [ "$status" = "1" ]; then
  echo_success
else
  echo_failure
fi

当我们不知道你的脚本应该做什么的时候,很难找出你的脚本出了什么问题。这与你的问题无关,但是你可以这样做重定向:`>/dev/null 2>&1`当我们不知道你的脚本应该做什么时,很难找出它出了什么问题。这与你的问题无关,但是你可以这样做重定向:`>/dev/null 2>&1`同时
sudo
env
保留退出代码,因此,可能是守护进程本身没有设置正确的代码。
sudo
env
都保留了退出代码,因此可能是守护进程本身没有设置正确的代码。