前言
大多数 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系统中查看所有正在运行服务的方法小结的详细内容,更多关于linux查看正在运行服务的资料请关注3w代码其它相关文章!
发表评论