sssd가 설치되어 다시 시작할 수 있음에도 불구하고 인식되지 않는 서비스인 이유는 무엇입니까?

sssd가 설치되어 다시 시작할 수 있음에도 불구하고 인식되지 않는 서비스인 이유는 무엇입니까?

sssd가 설치되어 다시 시작할 수 있음에도 불구하고 인식되지 않는 서비스인 이유는 무엇입니까? 참고: 이것은 Ubuntu 14.04.1 LTS에 관한 것입니다. 12.04에서는 그렇지 않았습니다. 아래에서 의미하는 바를 보여 드리겠습니다. 버그라고 생각하지만 설명 및/또는 해결 방법에 관심이 있습니다.

root@tauriel:~/scripts# service sssd
**sssd: unrecognized service**
root@tauriel:~/scripts# service sssd status
sssd start/running, process 22454
root@tauriel:~/scripts# service sssd restart
sssd stop/waiting
sssd start/running, process 22485
root@tauriel:~/scripts# service sssd status
sssd start/running, process 22485
root@tauriel:~/scripts# service sssd
**sssd: unrecognized service**
root@tauriel:~/scripts# 

참고: sssd는 분명히 새로운 태그이므로 추가하면 좋을 것 같습니다.

답변1

를 실행할 때 servicesysv init 스크립트가 있으면 해당 스크립트를 호출합니다(또는 Upstart 작업인 경우 Upstart를 호출합니다).

$ service ssh
 * Usage: /etc/init.d/ssh {start|stop|reload|force-reload|restart|try-restart|status}
$ service gdm
/etc/init.d/gdm: 79: /etc/init.d/gdm: Syntax error: "fi" unexpected (expecting "}")

restart당연히 명령( , 등) 을 전달하지 않으면 status해당 스크립트만 응답할 수 있습니다. 서비스의 초기화 파일이 Upstart-only이면 실패합니다.

$ service tty1
tty1: unrecognized service

SSSD는 다음의 파일 목록에서 볼 수 있듯이 Upstart init 스크립트만 제공합니다.sssd-common.


이 동작은 다음 문서에 정확하게 문서화되어 있지 않습니다.맨페이지. 그러나 service쉘 스크립트인 명령을 살펴보면 다음과 같습니다 .

118 if [ -r "/etc/init/${SERVICE}.conf" ] && which initctl >/dev/null \
119    && initctl version | grep -q upstart
120 then
121    # Upstart configuration exists for this job and we're running on upstart
122    case "${ACTION}" in  

이 작업은 (심볼릭 링크 버전 - , 등을 통해) 호출 case로 구성됩니다 . 변수 가 비어 있고 어떤 대소문자와도 일치하지 않으므로 다음과 같이 됩니다.execinitctlstartstopACTION

138 
139 # Otherwise, use the traditional sysvinit
140 if [ -x "${SERVICEDIR}/${SERVICE}" ]; then
141    exec env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" ${ACTION} ${OPTIONS}
142 else
143    echo "${SERVICE}: unrecognized service" >&2
144    exit 1
145 fi

여기에서 해당 오류가 발생하는 이유를 확인할 수 있습니다.

관련 정보