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?

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
}

[ ... ]

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.