如何告知Linux守护进程的状态
我们有一个c语言的Linux守护进程和一个bash脚本来启动它。由于某些配置文件错误,守护进程有时无法启动,但脚本报告守护进程已成功启动。脚本的一个片段如下所示,有人能告诉我脚本有什么问题吗如何告知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
...
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
都保留了退出代码,因此可能是守护进程本身没有设置正确的代码。