Много сервисов в 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/sshd
в CentOS:
echo -n $"Starting $prog: "
$SSHD $OPTIONS && success || failure
Мой вопрос: существует ли эквивалентная человечность? Я мог скопировать сценарии, но они более сложны, чем Вы думали бы, и почему изобретают велосипед, если я не имею к?
Я думаю функции, которые Вы ищете, получены от /lib/lsb/init-functions
и названы log_success_msg
и log_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
}
[ ... ]
Вы могли использовать функции, обеспеченные 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/ssh
(case
для 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