要在Linux中查询所有的服务及其状态,你可以根据你的系统使用不同的命令。
使用Systemctl
对于那些使用Systemd初始化系统的较新发行版(比如大多数版本的Fedora, CentOS 7及以后版本和Ubuntu 15.04及以后版本),推荐使用`systemctl`命令:
bash
systemctl listunits type=service all
上面这个命令会列出系统内的所有的服务单元(不仅限于运行中的)。
如果只是想知道哪些服务正在运行中的话,可以执行:
bash
systemctl listunits type=service state=running
使用Service
`service statusall`也可以用来查看所有已注册的服务及其状态信息。符号"[+]"代表服务正在运行,而"[]"则表示已停止或未安装:
使用_chkconfig
`chkconfig list`命令可用于查看系统内所有已添加进chkconfig的service及其启动级别,但请注意,这仅表明服务何时运行而不是即时的状态。如果你的系统使用chkconfig,则这可能是更直接的方式来获取服务的状态列表。
其它方法
ntsysv 是一种基于文本的图形界面,让你能够在图形化的对话框里管理你的服务,但不是所有系统上都默认安装。
查阅 `/etc/init.d/` 目录,这个文件夹包含所有的init脚本。
使用 `ps aux | grep init` 来查看当前运行中的所有由init启动的服务相关进程,不过这种方式通常只提供一个概览,不能覆盖所有的情况。
具体采用哪一个工具取决于你的具体需求以及Linux版本的支持情况。现代的大多数Linux发行版倾向于鼓励用户更多地使用Systemd来管理和控制服务,这也是当前的一个主流趋势。
发表评论