Equivalente Ubuntu di successo / fallimento di CentOS


8

Molti servizi in CentOS si presentano così (tranne verde e rosso, rispettivamente):

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

Ciò accade perché gli /etc/init.dscript utilizzano script di utilità in /etc/rc.d/init.d/functionschiamato successe failure. Ecco uno snippet di /etc/init.d/sshdin CentOS:

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

La mia domanda è: esiste un equivalente di Ubuntu? Potrei copiare gli script, ma sono più complicati di quanto pensi, e perché reinventare la ruota se non devo?

Risposte:


7

Penso che le funzioni che stai cercando siano di provenienza /lib/lsb/init-functions, denominate log_success_msge log_failure_msg:

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

In questo output, il primo *è grigio, il secondo è rosso (caso di errore). Non estremamente colorato, basta inserire per far capire il punto ...


Da /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

È possibile utilizzare le funzioni fornite dal lsb-basepacchetto in /lib/lsb/init-functions. Ho visto degli init.dscript reperire quel file e quindi usare le funzioni all'interno, come log_end_msg:

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

Ad esempio, uno snippet di /etc/init.d/ssh( caseper 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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.