Beaucoup de services dans CentOS ressemblent à ceci (sauf vert et rouge, respectivement):
$ Sudo service blah start
Starting blah: [ OK ]
$ Sudo service notrunning stop
Stopping notrunning: [FAILED]
Cela est dû au fait que les scripts /etc/init.d
utilisent des scripts d’utilitaire dans /etc/rc.d/init.d/functions
appelés success
et failure
. Voici un extrait de /etc/init.d/sshd
dans CentOS:
echo -n $"Starting $prog: "
$SSHD $OPTIONS && success || failure
Ma question est la suivante: existe-t-il un équivalent d'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 ne suis pas obligé?
Je pense que les fonctions que vous recherchez proviennent de /lib/lsb/init-functions
et sont nommées log_success_msg
et log_failure_msg
:
$ . /lib/lsb/init-functions
$ log_success_msg foo
* foo
$ log_failure_msg foo
* foo
Dans cette sortie, le premier *
est gris, le second 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
}
[ ... ]
Vous pouvez utiliser les fonctions fournies par le package _lsb-base
_ dans _/lib/lsb/init-functions
_. J'ai vu des scripts _init.d
_ extraire ce fichier, puis utiliser les fonctions qu'il contient, tels 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
_ (case
pour 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
_