Ubuntu相当于CentOS的成功/失败


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等效产品?我可以复制这些脚本,但是它们比您想象的要复杂得多,如果不需要,为什么还要重新发明轮子呢?

Answers:


7

我认为您要寻找的功能来自/lib/lsb/init-functions,并命名为log_success_msglog_failure_msg

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

在此输出中,第一个*为灰色,第二个为红色(错误情况)。不是非常丰富多彩,只是说清楚点...


来自/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/sshcasestart)摘录:

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.