为什么我的服务状态为:未知作业?

为什么我的服务状态为:未知作业?

我跟着当我想查看其状态时,将程序作为服务添加到 init.d 的教程(我猜):

sudo status /etc/init.d/noip2

我得到:

status: Unknown job: /etc/init.d/noip2

什么意思?我应该改变程序吗?

程序是:

#! /bin/sh

# /etc/init.d/noip2
# Supplied by no-ip.com
# Modified for Debian GNU/Linux by Eivind L. Rygge <[email protected]>
# Updated by David Courtney to not use pidfile 130130 for Debian stable.

# . /etc/rc.d/init.d/functions  # uncomment/modify for your killproc

DAEMON=/usr/local/bin/noip2
NAME=noip2

test -x $DAEMON || exit 0

case "$1" in
   start)
       echo -n "Starting dynamic address update: "
       start-stop-daemon –start –exec $DAEMON
       echo "noip2."
   ;;

   stop)
       echo -n "Shutting down dynamic address update:"
       start-stop-daemon –stop –oknodo –retry 30 –exec $DAEMON
       echo "noip2."
   ;;

   restart)
       echo -n "Restarting dynamic address update: "
       start-stop-daemon –stop –oknodo –retry 30 –exec $DAEMON
       start-stop-daemon –start –exec $DAEMON
       echo "noip2."
   ;;

   *)
       echo "Usage: $0 {start|stop|restart}"
       exit 1
   ;;

esac
exit 0

答案1

你的剧本就是init.d剧本。该status命令适用于 Upstart 工作;不适用于init.d脚本。

initctl list用于列出所有 Upstart 职位。如果你尝试一下,你会发现它noip2不存在。事实上,您会发现/etc/init.d该命令没有显示任何脚本。 initctl list(以及status您尝试过的命令),仅适用于来自/etc/init(注意缺少.d)的 Upstart 配置文件。

检查脚本状态的命令/etc/init.d通常是:

# service <script> status

但是,要使其正常工作,脚本必须支持某个status函数,而您的脚本不支持该函数。

您的脚本具有三个选项:startstoprestart意味着这是您可以传递给 的仅有的三个命令service noip2 <cmd>。如果您阅读其中的其他内容,/etc/init.d您会发现他们有更多选择,例如status.

事实上,如果您阅读您发布的链接中的文章,您会发现检查状态的方法noip2是:

$ sudo /usr/local/bin/noip2 –S

相关内容