我跟着这当我想查看其状态时,将程序作为服务添加到 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
函数,而您的脚本不支持该函数。
您的脚本具有三个选项:start
,stop
这restart
意味着这是您可以传递给 的仅有的三个命令service noip2 <cmd>
。如果您阅读其中的其他内容,/etc/init.d
您会发现他们有更多选择,例如status
.
事实上,如果您阅读您发布的链接中的文章,您会发现检查状态的方法noip2
是:
$ sudo /usr/local/bin/noip2 –S