Ubuntu-Äquivalent zu CentOS Erfolg / Misserfolg

8

Viele Dienste in CentOS sehen folgendermaßen aus (außer grün bzw. rot):

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

Dies geschieht, weil die /etc/init.dSkripte Dienstprogramm-Skripte in /etc/rc.d/init.d/functionsaufgerufenen successund verwenden failure. Hier ist ein Ausschnitt aus /etc/init.d/sshdCentOS:

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

Meine Frage ist: Gibt es ein Ubuntu-Äquivalent? Ich könnte die Skripte kopieren, aber sie sind komplizierter als Sie denken, und warum das Rad neu erfinden, wenn ich nicht muss?

durron597
quelle

Antworten:

7

Ich denke, die Funktionen, die Sie suchen, stammen von /lib/lsb/init-functionsund benannt log_success_msgund log_failure_msg:

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

In dieser Ausgabe ist die erste *grau, die zweite rot (Fehlerfall). Nicht besonders farbenfroh, nur genug, um den Punkt zu vermitteln ...


Von /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
quelle
2

Sie können die vom lsb-basePaket bereitgestellten Funktionen in verwenden /lib/lsb/init-functions. Ich habe init.dSkripte gesehen , die diese Datei beschaffen und dann die darin enthaltenen Funktionen verwenden, wie zum Beispiel log_end_msg:

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

Zum Beispiel ein Ausschnitt aus /etc/init.d/ssh( casefür 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
quelle