云网牛站
所在位置:首页 > Linux教程 > 在Linux系统中查看所有正在运行的服务

在Linux系统中查看所有正在运行的服务

2018-08-14 10:57:22作者:jessie-pang稿源:linuxcn

在 Linux 系统中所有正在运行的服务都是用什么查看的?其实使用系统自带的工具和很多方法都可以查看到系统所有正在运行的服务,本文就和大家探讨这个问题。

 

前言

大多数 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

在Linux系统中查看所有正在运行的服务

执行以下命令,可以只查看正在运行的服务:

# service --status-all | grep running

在Linux系统中查看所有正在运行的服务

运行以下命令以查看指定服务的状态:

# service --status-all | grep httpd

httpd (pid 627) is running...

或者使用以下命令也可以查看指定服务的状态:

# service httpd status

httpd (pid 627) is running...

使用以下命令查看系统启动时哪些服务会被启用:

# chkconfig --list

在Linux系统中查看所有正在运行的服务

 

方法二、在 System V(SysV)系统中查看运行的服务

另外一种在 Linux 系统上列出运行的服务的方法是使用 initctl 命令:# initctl list

在Linux系统中查看所有正在运行的服务

 

方法三、在 systemd 系统中查看运行的服务

systemctl 命令帮助我们列出 systemd 系统中所有服务:

在Linux系统中查看所有正在运行的服务

以上命令的解释:

1.UNIT 相应的 systemd 单元名称

2.LOAD 相应的单元是否被加载到内存中

3.ACTIVE 该单元是否处于活动状态

4.SUB 该单元是否处于运行状态(注:是较于 ACTIVE 更加详细的状态描述,不同的单元类型有不同的状态。)

5.DESCRIPTION 关于该单元的简短描述

以下选项可根据类型列出单元:# systemctl list-units --type service

在Linux系统中查看所有正在运行的服务

以下选项可帮助您根据状态列出单位,输出与前例类似但更直截了当:# systemctl list-unit-files --type service

在Linux系统中查看所有正在运行的服务

运行以下命令以查看指定服务的状态:

# systemctl | grep apache2

apache2.service  loaded active running  The Apache HTTP Server

或者,使用 systemctl status apache2 命令也可查看指定服务的状态:

在Linux系统中查看所有正在运行的服务

执行 systemctl | grep running 命令,只查看正在运行的服务:

在Linux系统中查看所有正在运行的服务

使用 systemctl list-unit-files | grep enabled 命令查看系统启动时会被启用的服务列表:

在Linux系统中查看所有正在运行的服务

systemd-cgtop 命令按资源使用情况(任务、CPU、内存、输入和输出)列出控制组:

在Linux系统中查看所有正在运行的服务

同时,我们可以使用 pstree 命令(输出来自 SysVinit 系统)查看正在运行的服务:

在Linux系统中查看所有正在运行的服务

我们还可以使用 pstree 命令(输出来自 systemd 系统)查看正在运行的服务:

在Linux系统中查看所有正在运行的服务

 

方法四、使用 chkservice 在 systemd 系统中查看正在运行的服务

chkservice 是一个管理系统单元的终端工具,需要超级用户权限。

# chkservice

在Linux系统中查看所有正在运行的服务

要查看帮助页面,请按下?,它将显示管理 systemd 服务的可用选项。

在Linux系统中查看所有正在运行的服务

 

总结

以上介绍了在 Linux 系统中查看所有正在运行的服务的方法,还有很多工具和方法也可以达到目的,但是以上介绍的方法都是最简便的,也是最容易操作的。

 

相关主题

Linux专业知识四:Linux系统进程管理及查看内存

精选文章
热门文章