了解 service --status-all 输出

p4s*_*sh4 14 linux ubuntu ssh sendmail service

我试图了解service --status-allUbuntu 13.10 上命令的输出,因为手册页没有解释它。例如:

[ + ]  rsyslog
[ - ]  sendmail
[ ? ]  sendsigs
[ + ]  setvtrgb
[ - ]  ssh
Run Code Online (Sandbox Code Playgroud)

什么+-?是什么意思?我想不通。我之前安装过 sendmail,但我停止并使用apt-get remove sendmail*. 我想这并没有摆脱 init 脚本/etc/init.d/,这就是它在输出中显示它的原因,但至少它是一个-,所以我认为它没有运行。然后,SSH。我实际上是通过 SSH 连接到服务器,所以我假设 SSH 服务应该正在运行,但-无论如何它都在那里。然后是神秘的?. 有人请阐明这实际上意味着什么。

fak*_*ker 15

service --status-all命令尝试找出每个 init 脚本/etc/init.d是否支持status命令(通过 grep 脚本 for status)。

如果没有找到该字符串,它将[ ? ]为该服务打印。

否则它会运行/etc/init.d/$application status
如果返回码为 0,则打印[ + ].
如果它不是 0,则打印[ - ].

为什么即使ssh打印[ - ]仍在运行?
ssh由 Ubuntu (13.10) 中的 upstart 控制。
运行/etc/init.d/ssh status不会产生任何输出,返回码为 1。