要在Linux中查询所有的服务及其状态,你可以根据你的系统使用不同的命令。

使用Systemctl

对于那些使用Systemd初始化系统的较新发行版(比如大多数版本的Fedora, CentOS 7及以后版本和Ubuntu 15.04及以后版本),推荐使用`systemctl`命令:

bash

linux查询所有服务  第1张

systemctl listunits type=service all

上面这个命令会列出系统内的所有的服务单元(不仅限于运行中的)。

如果只是想知道哪些服务正在运行中的话,可以执行:

linux查询所有服务  第2张

bash

systemctl listunits type=service state=running

使用Service

linux查询所有服务  第3张

`service statusall`也可以用来查看所有已注册的服务及其状态信息。符号"[+]"代表服务正在运行,而"[]"则表示已停止或未安装:

使用_chkconfig

`chkconfig list`命令可用于查看系统内所有已添加进chkconfig的service及其启动级别,但请注意,这仅表明服务何时运行而不是即时的状态。如果你的系统使用chkconfig,则这可能是更直接的方式来获取服务的状态列表。

其它方法

ntsysv 是一种基于文本的图形界面,让你能够在图形化的对话框里管理你的服务,但不是所有系统上都默认安装。

查阅 `/etc/init.d/` 目录,这个文件夹包含所有的init脚本。

使用 `ps aux | grep init` 来查看当前运行中的所有由init启动的服务相关进程,不过这种方式通常只提供一个概览,不能覆盖所有的情况。

具体采用哪一个工具取决于你的具体需求以及Linux版本的支持情况。现代的大多数Linux发行版倾向于鼓励用户更多地使用Systemd来管理和控制服务,这也是当前的一个主流趋势。