服务状态不起作用

时间:2015-06-11 19:49:58

标签: linux bash shell service pid

我有一个服务,我试图在启动时自动启动。

#!/bin/sh
# Source function library.
. /etc/rc.d/init.d/functions

RETVAL=0

prog='foo'
exec="/usr/sbin/$prog"
pidfile="/var/run/$prog.pid"
lock_file="/var/lock/subsys/$prog"
logfile="/var/log/$prog"

if [ -f /etc/default/foo ]; then
  . /etc/default/foo
fi

if [ -z $QUEUE_TYPE ]; then
  echo 'ENV variable QUEUE_TYPE has not been set, please set it in /etc/default/foo'
  exit 1
fi

get_pid() {
  cat "$pidfile"
}

is_running() {
  [ -f "$pidfile" ] && ps `get_pid` > /dev/null 2>&1
}

case "$1" in
  start)
    echo -n "Starting Consul daemon: "
    #
    daemon --pidfile $pidfile --check foo --user my-user "my app stuff here"
    echo
    ;;
  stop)
    echo -n 'Stopping Consul daemon: '
    killproc foo
    echo
    ;;
  status)
    status $pidfile
    RETVAL=$?
    #status -p $pidfile -l $prog
    #[ $RETVAL -eq 0 ] && RETVAL=$?
    #RETVAL=$?
    #if is_running; then
    #  echo 'Running'
    #else
    #  echo 'Not Running'
    #fi
    #status foo
    #RETVAL=$?
    ;;
  restart)
    $0 stop
    $0 start
    RETVAL=$?
    ;;
  *)
    echo 'Usage: foo {start|stop|status|restart}'
    exit 1
esac

exit $RETVAL

当我运行sudo service foo status时,它表示它尚未启动,这是正确的。运行sudo service foo start然后运行status命令后,它会告诉我该服务尚未启动。我不确定是什么导致这种情况发生。我查看了其他init.d脚本的配置,看看他们是如何处理这个并试图跟随他们的。这里有什么明显的东西我做错了或其他我可能没有意识到导致这个问题的东西吗?

0 个答案:

没有答案