Ubuntu tương đương với thành công / thất bại của CentOS


8

Rất nhiều dịch vụ trong CentOS trông như thế này (ngoại trừ màu xanh lá cây và màu đỏ, tương ứng):

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

Điều này xảy ra bởi vì các /etc/init.dtập lệnh sử dụng các tập lệnh tiện ích trong /etc/rc.d/init.d/functionsđược gọi successfailure. Đây là một đoạn trích /etc/init.d/sshdtrong CentOS:

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

Câu hỏi của tôi là: có tương đương với Ubuntu không? Tôi có thể sao chép các tập lệnh qua, nhưng chúng phức tạp hơn bạn nghĩ, và tại sao phải phát minh lại bánh xe nếu tôi không phải làm vậy?

Câu trả lời:


7

Tôi nghĩ rằng các chức năng bạn đang tìm kiếm có nguồn gốc từ /lib/lsb/init-functions, và được đặt tên log_success_msglog_failure_msg:

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

Trong đầu ra này, đầu tiên *là màu xám, thứ hai là màu đỏ (trường hợp lỗi). Không phải là cực kỳ nhiều màu sắc, chỉ là khó khăn để có được điểm ...


Từ /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

Bạn có thể sử dụng các chức năng được cung cấp bởi lsb-basegói trong /lib/lsb/init-functions. Tôi đã thấy init.dcác tập lệnh tìm nguồn của tập tin đó và sau đó sử dụng các hàm bên trong, chẳng hạn như log_end_msg:

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

Ví dụ: một đoạn trích từ /etc/init.d/ssh( casefor 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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.