Ubuntu 相当于 CentOS 成功/失败

dur*_*597 9 command-line init.d scripts services

CentOS 中的很多服务看起来是这样的(分别是绿色和红色除外):

$ sudo service blah start
Starting blah:           [  OK  ]
$ sudo service notrunning stop
Stopping notrunning:     [FAILED]
Run Code Online (Sandbox Code Playgroud)

发生这种情况是因为/etc/init.d脚本在/etc/rc.d/init.d/functions调用successfailure. 这是/etc/init.d/sshdCentOS 中的一个片段:

echo -n $"Starting $prog: "
$SSHD $OPTIONS && success || failure
Run Code Online (Sandbox Code Playgroud)

我的问题是:是否有 ubuntu 等价物?我可以复制脚本,但它们比你想象的要复杂,如果不需要我为什么要重新发明轮子?

Vol*_*gel 8

我认为你正在寻找的功能从采购/lib/lsb/init-functions,并命名为log_success_msglog_failure_msg

$ . /lib/lsb/init-functions
$ log_success_msg foo
 * foo
$ log_failure_msg foo 
 * foo
Run Code Online (Sandbox Code Playgroud)

在这个输出中,第一个*是灰色的,第二个是红色的(错误情况)。不是非常丰富多彩,只是足以理解这一点......


来自/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
}

[ ... ]
Run Code Online (Sandbox Code Playgroud)