Ubuntu setara dengan kesuksesan / kegagalan CentOS

8

Banyak layanan di CentOS yang terlihat seperti ini (kecuali hijau dan merah, masing-masing):

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

Ini terjadi karena /etc/init.dskrip menggunakan skrip utilitas dalam /etc/rc.d/init.d/functionsmemanggil successdan failure. Berikut cuplikan dari /etc/init.d/sshddalam CentOS:

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

Pertanyaan saya adalah: apakah ada yang setara dengan Ubuntu? Saya dapat menyalin skrip, tetapi skrip lebih rumit daripada yang Anda bayangkan, dan mengapa menciptakan kembali roda jika saya tidak harus melakukannya?

durron597
sumber

Jawaban:

7

Saya pikir fungsi yang Anda cari bersumber dari /lib/lsb/init-functions, dan bernama log_success_msgdan log_failure_msg:

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

Dalam output ini, yang pertama *adalah abu-abu, yang kedua adalah merah (kasus kesalahan). Tidak terlalu berwarna, hanya perlu untuk mendapatkan titik di ...


Dari /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
sumber
2

Anda dapat menggunakan fungsi yang disediakan oleh lsb-basepaket di /lib/lsb/init-functions. Saya telah melihat init.dskrip sumber file itu dan kemudian menggunakan fungsi di dalamnya, seperti log_end_msg:

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

Misalnya, cuplikan dari /etc/init.d/ssh( caseuntuk 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
sumber