为什么 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 显然是一个新标签,如果添加它会很好。
当你运行时
service
,如果有一个 sysv init 脚本,它将调用该脚本(或者调用 Upstart,如果它是一个 Upstart 作业):当然,如果您不传递命令(
restart
、status
等),则只有这些脚本能够响应。如果服务的初始化文件是 Upstart-only,这将失败:SSSD 只提供了一个 Upstart init 脚本,从
sssd-common
.联机帮助页中没有详细记录此行为。但是,如果您检查
service
命令,它是一个 shell 脚本:其中的操作
case
包括exec
调用initctl
(通过其符号链接版本 -start
、stop
等)。由于ACTION
变量为空且不匹配任何大小写,因此它落入:在这里您可以看到它产生该错误的原因。