web-dev-qa-db-ja.com

ステータスが表示される理由:サービスの不明なジョブ?

私は this チュートリアルに従って、プログラムをサービスとして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
3
abolmabol

スクリプトは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関数をサポートしている必要があります。

スクリプトには3つのオプションがあります:startstopおよびrestartつまり、これらはservice noip2 <cmd>に渡すことができる3つのコマンドだけです。 /etc/init.d内で他の人を読んだ場合、statusなどのオプションが他にもあることがわかります。

実際、投稿したリンクの記事を読んだ場合、noip2のステータスを確認する方法は次のとおりです。

$ Sudo /usr/local/bin/noip2 –S
2
garethTheRed