CentOSの成功/失敗に相当するUbuntu


8

CentOSの多くのサービスは次のようになります(それぞれ緑と赤を除く)。

$ sudo service blah start
Starting blah:           [  OK  ]
$ sudo service notrunning stop
Stopping notrunning:     [FAILED]

これは、/etc/init.dスクリプトが/etc/rc.d/init.d/functions呼び出されたsuccessおよびでユーティリティスクリプトを使用するために発生しfailureます。/etc/init.d/sshdCentOSのスニペットを次に示します。

echo -n $"Starting $prog: "
$SSHD $OPTIONS && success || failure

私の質問は、ubuntuに相当するものはありますか?スクリプトをコピーすることもできますが、スクリプトは思ったよりも複雑です。必要がないのに、なぜホイールを再発明するのですか。

回答:


7

あなたが探している関数はから供給され/lib/lsb/init-functions、名前が付けられているlog_success_msgと思いますlog_failure_msg

$ . /lib/lsb/init-functions
$ log_success_msg foo
 * foo
$ log_failure_msg foo 
 * foo

この出力では、1つ目*は灰色、2つ目は赤(エラーの場合)です。あまりカラフルではなく、ただポイントを獲得するのに夢中...


から/lib/lsb/init-functions

[ ... ]

log_success_msg () {
    if [ -n "${1:-}" ]; then
        log_begin_msg $@
    fi
    log_end_msg 0
}

log_failure_msg () {
    if [ -n "${1:-}" ]; then
        log_begin_msg $@ "..."
    fi
    log_end_msg 1 || true
}

[ ... ]

2

lsb-baseパッケージが提供する関数を使用できます/lib/lsb/init-functions。私が見てきたinit.d、そのファイルを調達してからのような、内の機能を使用してスクリプトをlog_end_msg

$ (. /lib/lsb/init-functions; log_end_msg 1)
   ...fail!
$ (. /lib/lsb/init-functions; log_end_msg 0)
   ...done.

たとえば、/etc/init.d/sshcasefor start)のスニペット:

if start-stop-daemon --start --quiet --oknodo --pidfile /var/run/sshd.pid --exec /usr/sbin/sshd -- $SSHD_OPTS; then
    log_end_msg 0 || true
else
    log_end_msg 1 || true
fi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.