Équivalent Ubuntu de succès / échec de CentOS

8

De nombreux services dans CentOS ressemblent à ceci (sauf le vert et le rouge, respectivement):

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

Cela se produit car les /etc/init.dscripts utilisent des scripts utilitaires dans /etc/rc.d/init.d/functionsappelés successet failure. Voici un extrait de /etc/init.d/sshdCentOS:

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

Ma question est: existe-t-il un équivalent ubuntu? Je pourrais copier les scripts, mais ils sont plus compliqués que vous ne le pensez, et pourquoi réinventer la roue si je n'ai pas à le faire?

durron597
la source

Réponses:

7

Je pense que les fonctions que vous recherchez proviennent de /lib/lsb/init-functions, sont nommées log_success_msget log_failure_msg:

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

Dans cette sortie, la première *est grise, la seconde est rouge (cas d'erreur). Pas très coloré, juste assez pour faire passer le message ...


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
la source
2

Vous pouvez utiliser les fonctions fournies par le lsb-basepackage dans /lib/lsb/init-functions. J'ai vu des init.dscripts s'approvisionner dans ce fichier puis utiliser les fonctions à l'intérieur, telles que log_end_msg:

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

Par exemple, un extrait de /etc/init.d/ssh( casepour 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
la source