Ubuntu equivalente al éxito / fracaso de CentOS

8

Muchos servicios en CentOS tienen este aspecto (excepto verde y rojo, respectivamente):

$ sudo service blah start
Starting blah:           [  OK  ]
$ sudo service notrunning stop
Stopping notrunning:     [FAILED]

Esto sucede porque las /etc/init.dsecuencias de comandos utilizan secuencias de comandos de utilidad en /etc/rc.d/init.d/functionsllamadas successy failure. Aquí hay un fragmento de /etc/init.d/sshdCentOS:

echo -n $"Starting $prog: "
$SSHD $OPTIONS && success || failure

Mi pregunta es: ¿hay un equivalente de ubuntu? Podría copiar los guiones, pero son más complicados de lo que piensas, y ¿por qué reinventar la rueda si no tengo que hacerlo?

durron597
fuente

Respuestas:

7

Creo que las funciones que está buscando se obtienen /lib/lsb/init-functions, nombran log_success_msgy log_failure_msg:

$ . /lib/lsb/init-functions
$ log_success_msg foo
 * foo
$ log_failure_msg foo 
 * foo

En esta salida, el primero *es gris, el segundo es rojo (caso de error). No es extremadamente colorido, solo basta para entender ...


De /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
}

[ ... ]
Volker Siegel
fuente
2

Puede usar las funciones proporcionadas por el lsb-basepaquete en /lib/lsb/init-functions. He visto init.dsecuencias de comandos que obtienen ese archivo y luego usan las funciones internas, como log_end_msg:

$ (. /lib/lsb/init-functions; log_end_msg 1)
   ...fail!
$ (. /lib/lsb/init-functions; log_end_msg 0)
   ...done.

Por ejemplo, un fragmento de /etc/init.d/ssh( casepara 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
muru
fuente