CentOS 성공 / 실패와 동등한 Ubuntu


8

CentOS의 많은 서비스는 다음과 같습니다 (각각 녹색과 빨간색 제외).

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

때문입니다 /etc/init.d스크립트에서 유틸리티 스크립트 사용 /etc/rc.d/init.d/functions이라고를 success하고 failure. /etc/init.d/sshdCentOS 의 스 니펫은 다음과 같습니다 .

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

내 질문은 : 우분투 동등 물이 있습니까? 스크립트를 복사 할 수는 있지만 생각보다 복잡하며, 필요하지 않은 경우 바퀴를 다시 발명해야하는 이유는 무엇입니까?

답변:


7

나는 당신이 찾고있는 기능들이에서 유래되었고 /lib/lsb/init-functions, 이름 log_success_msglog_failure_msg:

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

이 출력에서 ​​첫 번째 *는 회색이고 두 번째는 빨간색입니다 (오류 사례). 매우 화려하지는 않지만 포인트를 얻는 데 능숙합니다 ...


보낸 사람 /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

lsb-base패키지에서 제공하는 기능을 사용할 수 있습니다 /lib/lsb/init-functions. init.d스크립트가 해당 파일을 소싱하고 다음과 같은 함수를 사용하는 것을 보았습니다 log_end_msg.

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

예를 들어 /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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.