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? Я міг би скопіювати сценарії, але вони складніші, ніж ви думали, і навіщо винаходити колесо, якщо мені не потрібно?

Відповіді:


7

Я думаю, що функції, які ви шукаєте, отримані з /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
}

[ ... ]

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/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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.