Почему sssd является нераспознанным сервисом, даже при том, что он установлен и может быть перезапущен?

Почему sssd является нераспознанным сервисом, даже при том, что он установлен и может быть перезапущен? BTW: Это касается 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# 

BTW: sssd является, по-видимому, новым тегом, было бы хорошо, если бы он был добавлен.

7
задан 30 May 2017 в 03:11

1 ответ

Когда Вы работаете service, если будет sysv init сценарий, то он назовет тот сценарий (или позвонит Выскочке, если это будет Новомодное задание):

$ 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, и т.д.), только эти сценарии смогут ответить. Если init файл для сервиса будет Только для выскочки, то это перестанет работать:

$ service tty1
tty1: unrecognized service

SSSD только предлагает Выскочке 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 состоит из exec вызовы initctl (через его symlinked версии - start, stop, и т.д.). Начиная с ACTION переменная пуста и не соответствует никакому случаю, она падает до:

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

Здесь Вы видите, почему это производит ту ошибку.

7
ответ дан 23 November 2019 в 06:36

Другие вопросы по тегам:

Похожие вопросы: