我正在寻找一种方法来获取所有服务(/etc/init.d 或 upstart 或 systemd)的列表,这些服务应该正在启动(或已在启动时启动)。
您如何获得所有启动服务的列表?— 我知道这个问题,它建议使用service --status-all
.
但这并没有告诉我,哪些服务应该运行。它使用“ status
”参数调用所有初始化脚本。这是可以运行的所有服务的列表。
但是我想知道,如果在启动时启动的服务仍在运行。
例子…
我已经安装了 webfs。但我不希望它在启动时运行。因此我禁用了它:sudo update-rc.d webfs disable
。而且我还安装了 samba,它应该在启动时运行。但它已停止(无论出于何种原因)。sudo service --status-all
在这里对我没有帮助:
$ sudo service --status-all 2>/dev/null | grep -E 'samba$|webfs'
[ - ] samba
[ - ] webfs
Run Code Online (Sandbox Code Playgroud)
两个都关了,但我不知道,那个(桑巴舞)应该开着。
所以…
我如何获得在启动时启动的所有服务的列表?并且,作为扩展,是否有一种简单的方法来获取这些服务的“状态”(如果没有,我将简单地遍历这个列表并运行“service $service status”,或类似的东西)。
谢谢,亚历山大
编辑 2015-05-04: 我在 Ubuntu 14.04 上。
这个问题的主要焦点如下:
但是我想知道,如果在启动时启动的服务仍在运行。
正因为如此,initctl list
并没有多大帮助。它并没有真正考虑由/etc/init.d
脚本启动的服务(与 中的新贵脚本相比/etc/init
)。
列表/etc/rc?.d/S*
也无济于事。它将生成一个服务列表,这些服务可能已在给定的运行级别中启动。它没有显示我应该启动的服务是否仍在运行。
基本上,我正在svcs -x
为 Ubuntu寻找类似Solaris 的东西。使用 …
有没有办法获得指定“正在运行”/“未运行”状态的服务的精确列表。
service --status-all
Run Code Online (Sandbox Code Playgroud)
输出30多个?
服务。
为什么该输出的信息量如此之大?确定服务是否正在运行有那么难吗?以及如何获取所有服务的确切状态?
zerkms@ubuntu-server-11:~$ sudo service --status-all 2>&1|grep cron
[ ? ] cron
zerkms@ubuntu-server-11:~$ sudo service cron status
cron start/running, process 804
Run Code Online (Sandbox Code Playgroud)