服务--status-all->列中带有[吗?],[+]和[-]是什么意思?


13

如果我运行命令“ service --status-all”,则每个(正在运行?)服务均以列格式列出。第一列有一个[?],[+]或[-]在服务名称之前。该列代表什么??,+和-是什么意思?

抱歉,这是一个简单的问题。我在网上搜索了大约30分钟,然后才来这里询问。

我什至发现了这一点:service --status-all中的符号是什么意思?其中“正确”的答案是“根据退出状态是零还是非零分别绘制[+]或[-]。”。

所以,我想我的新问题是状态零和非零(!?!?!)表示什么?

Answers:


12

好吧,这些只是退出代码。事情已经做运行后,它可以返回8位整数(0-255)来表示如何它退出。

  • 零(如果未返回任何内容,则表示这是隐含的)表示应用程序已完成应做的工作并自然退出。
  • 非零代码(1-255)表示应用程序想要的任何内容。手册页(man <command>)通常会向您显示这些代码的含义。

在问题方面,请不要考虑过多:

  • + 表示它正在运行,
  • -表示不是(它可能已崩溃-它可能从未启动),并且
  • ?意味着服务没有status命令,因此服务命令无法确定具体内容。

1
我完全同意您的答案(+1),但是即使从SSH运行此命令,我也无法理解为什么会sudo service --status-all 2>&1 | grep ssh输出[ - ] ssh?还是为什么sudo service --status-all 2>&1 | grep lightdm输出[ ? ] lightdmsudo service lightdm status就像魅力一样?
RaduRădeanu2014年

@RaduRădeanu要猜测,我认为这可能是一个遗留/etc/init.d问题。在我串行升级的计算机上,/etc/init.d/ssh status; echo $?显示非零(错误,未运行)并且initctl list不显示SSH。在我的14.04框中initctrl 确实显示SSH,但service仍然无法读取状态。还要记住,它initctrl适用于Upstart,service是的一部分sysvinit-utils。这不是最清晰的图片,但我认为这可能可以解释某些怪癖。我敢肯定,向systemd转移将清除D的所有问题:
Oli

我以为也可以返回负的退出代码,或者仅用于非服务脚本?
saiarcot895 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.