前言
大多数 Linux 管理员会在 System V(SysV)初始化系统中使用 service service-name status 或 /etc/init.d/service-name status,而在 systemd 初始化系统中使用 systemctl status service-name。
以上命令可以清楚地显示该服务是否在服务器上运行,这也是每个 Linux 管理员都该知道的非常简单和基础的命令。
如果你对系统环境并不熟悉,也不清楚系统在运行哪些服务,你会如何检查?
是的,我们的确有必要这样检查一下。这将有助于我们了解系统上运行了什么服务,以及哪些是必要的、哪些需要被禁用。
init(初始化的简称)是在系统启动期间运行的第一个进程。init 是一个守护进程,它将持续运行直至关机。
大多数 Linux 发行版都使用如下的初始化系统之一:
1.System V 是更老的初始化系统。
2.Upstart 是一个基于事件的传统的初始化系统的替代品。
3.systemd 是新的初始化系统,它已经被大多数最新的 Linux 发行版所采用。
什么是 System V(SysV)
SysV(意即 System V) 初始化系统是早期传统的初始化系统和系统管理器。由于 sysVinit 系统上一些长期悬而未决的问题,大多数最新的发行版都适用于 systemd 系统。
什么是 Upstart 初始化系统
Upstart 是一个基于事件的 /sbin/init 的替代品,它控制在启动时的任务和服务的开始,在关机时停止它们,并在系统运行时监控它们。
它最初是为 Ubuntu 发行版开发的,但其是以适合所有 Linux 发行版的开发为目标的,以替换过时的 System-V 初始化系统。
什么是 systemd
systemd 是一个新的初始化系统以及系统管理器,它已成为大多数 Linux 发行版中非常流行且广泛适应的新的标准初始化系统。systemctl 是一个 systemd 管理工具,它可以帮助我们管理 systemd 系统。
方法一、在 System V(SysV)系统中查看运行的服务
以下命令可以帮助我们列出 System V(SysV) 系统中所有正在运行的服务。
如果服务很多,我建议使用文件查看命令,如 less、more 等,以便得到清晰的结果。
# service --status-all
或:
# service --status-all | more
或:
# service --status-all | less
执行以下命令,可以只查看正在运行的服务:
# service --status-all | grep running
运行以下命令以查看指定服务的状态:
# service --status-all | grep httpd
httpd (pid 627) is running...
或者使用以下命令也可以查看指定服务的状态:
# service httpd status
httpd (pid 627) is running...
使用以下命令查看系统启动时哪些服务会被启用:
# chkconfig --list
方法二、在 System V(SysV)系统中查看运行的服务
另外一种在 Linux 系统上列出运行的服务的方法是使用 initctl 命令:# initctl list
方法三、在 systemd 系统中查看运行的服务
systemctl 命令帮助我们列出 systemd 系统中所有服务:
以上命令的解释:
1.UNIT 相应的 systemd 单元名称
2.LOAD 相应的单元是否被加载到内存中
3.ACTIVE 该单元是否处于活动状态
4.SUB 该单元是否处于运行状态(注:是较于 ACTIVE 更加详细的状态描述,不同的单元类型有不同的状态。)
5.DESCRIPTION 关于该单元的简短描述
以下选项可根据类型列出单元:# systemctl list-units --type service
以下选项可帮助您根据状态列出单位,输出与前例类似但更直截了当:# systemctl list-unit-files --type service
运行以下命令以查看指定服务的状态:
# systemctl | grep apache2
apache2.service loaded active running The Apache HTTP Server
或者,使用 systemctl status apache2 命令也可查看指定服务的状态:
执行 systemctl | grep running 命令,只查看正在运行的服务:
使用 systemctl list-unit-files | grep enabled 命令查看系统启动时会被启用的服务列表:
systemd-cgtop 命令按资源使用情况(任务、CPU、内存、输入和输出)列出控制组:
同时,我们可以使用 pstree 命令(输出来自 SysVinit 系统)查看正在运行的服务:
我们还可以使用 pstree 命令(输出来自 systemd 系统)查看正在运行的服务:
方法四、使用 chkservice 在 systemd 系统中查看正在运行的服务
chkservice 是一个管理系统单元的终端工具,需要超级用户权限。
# chkservice
要查看帮助页面,请按下?,它将显示管理 systemd 服务的可用选项。
总结
以上就是在Linux系统中查看所有正在运行服务的方法小结的详细内容。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。