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调用success和failure. 这是/etc/init.d/sshdCentOS 中的一个片段:
echo -n $"Starting $prog: "
$SSHD $OPTIONS && success || failure
Run Code Online (Sandbox Code Playgroud)
我的问题是:是否有 ubuntu 等价物?我可以复制脚本,但它们比你想象的要复杂,如果不需要我为什么要重新发明轮子?
我认为你正在寻找的功能从采购/lib/lsb/init-functions,并命名为log_success_msg和log_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)