Ubuntu, эквивалентная из успеха CentOS / отказ

Много сервисов в 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

Мой вопрос: существует ли эквивалентная человечность? Я мог скопировать сценарии, но они более сложны, чем Вы думали бы, и почему изобретают велосипед, если я не имею к?

8
задан 2 October 2014 в 01:01

2 ответа

Я думаю функции, которые Вы ищете, получены от /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
}

[ ... ]
7
ответ дан 16 November 2019 в 17:41

Вы могли использовать функции, обеспеченные 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
2
ответ дан 16 November 2019 в 17:41

Другие вопросы по тегам:

Похожие вопросы: