【问题标题】:How to tell the status of a Linux Daemon如何判断 Linux 守护进程的状态
【发布时间】:2009-09-21 10:06:59
【问题描述】:

我们有一个用 c 语言编写的 Linux 守护程序和一个 bash 脚本来启动它。由于某些配置文件错误,守护程序有时无法启动,但脚本报告守护程序已成功启动。脚本的 sn-p 如下所示,有人可以告诉我脚本有什么问题吗?

...
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
;;
...

谢谢!

【问题讨论】:

  • 当我们不知道它应该做什么时,真的很难弄清楚你的脚本出了什么问题。
  • 这与您的问题无关,但您可以像这样进行重定向:` > /dev/null 2>&1`

标签: linux bash daemon


【解决方案1】:

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

【讨论】:

  • sudoenv 都保留了退出代码,所以它可能真的是守护进程本身没有设置正确的代码。
【解决方案2】:

您可以在脚本中添加以下行以获取 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

【讨论】:

    猜你喜欢
    • 2011-03-06
    • 1970-01-01
    • 2016-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多