如何检查Linux中的所有正在运行的服务

时间:2020-02-23 14:38:18  来源:igfitidea点击:

使用任何Linux发行版时,某些进程和服务沿着。
即使没有用户的知识,有些人也可以在后台运行。
如果不考虑措施,运行不必要的服务运行可能会消耗大部分系统资源或者也会提出安全问题。

因此,需要了解系统上的所有正在运行的服务。
在本文中,我们查看所有可能使用的方式,以便在Linux机器上列出运行服务。

如何在Linux中检查运行服务

让我们首先了解Linux服务。
如果服务有初始化 脚本:那么它配有三个状态:

  • start

  • stop

  • restart

所有这些都与serviceCommand执行。
例如,要重新启动ThenetWork-ManagerService,请运行以下命令: sudo service network-manager restart服务命令使用存储在/etc/init.dfor ubuntu中的init脚本和任何其他基于debian的distro,andetc/rc.d/init.dfor基于Redhat的Linux发行版的每个服务引用了每个服务。
某些服务名称因对另一个的一个分发而异。
例如,Apache WebServer服务是Ubuntu上CentOS和Apache2上的httpd。

系统v(SYSV)|祖先| systemd.

很多Linux Distrs属于以下初始系统:

  • System v,这是初始初始系统。

  • Upstart

  • SystemD 最新初学系统。

System v(SYSV)

System V或者通常称为Sysv是旧的Linux发行版和返回原始UNIX的旧初始系统。
sysv使用/etc/init *中存在的shell脚本管理启动过程。
如果我们使用/etc/init.d/sshdstart启动或者停止服务;然后我们正在使用系统V系统。

upstart init系统

它是一个基于事件的init系统,它作为/sbin/init守护程序的替代品。
Upstart Init系统用于管理在系统运行时在启动,关机和监督和监督期间的服务的开始和停止。
Upstart最初为Ubuntu Linux发行版开发,以替换其他旧分布中使用的旧系统v。

systemd

它是大多数Linux Distrs移动到的新初始系统。
它开发了加快启动过程,管理依赖项等等。
如果我们是UsingsystemCtl重新启动SSHDStart以启动或者停止服务,则我们正在使用SystemD系统。

检查系统V(SYSV)INIT系统中的所有运行服务

让我们来看看一些终端命令,我们可以用于列出Sysv Init系统中的所有正在运行的服务。 service --status-all

上面的命令列出了系统中的所有正在运行的服务。
如果服务运行许多,我们可以越来越少使用其他参数,以列出有组织和清晰的视图中的服务。 service --status-all | less

service --status-all | more

要仅列出当前在系统上运行的服务,请执行以下命令: service --status-all | grep running要查看特定服务的状态,请执行以下命令:

service --status-all | grep [service_name]
e.g
service --status-all | grep httpd

或者,我们可以执行以下命令以查看特定服务的状态。 service httpd status要列出引导中启用的所有服务,请执行以下命令: chkconfig --list

检查upstart init系统中的所有运行服务

要列出在Linux系统上运行的所有服务,运行Upstartinit系统,请执行以下命令: initctl list

检查系统INIT系统中的所有运行服务

要列出在Linux系统上运行Systemd Init系统上的所有运行服务,请执行以下命令: systemctl

从上面的命令,我们看到数据显示在五列中,即单位,加载,活动,子和描述。
让我们来看看每个列代表什么:

  • 单位显示相应的系统单位名称。

  • 加载此列显示当前单位是否已在内存上加载。

  • Active此列指示本机是否正在使用(有效)。

  • 子描述特定单元的运行状态。

  • 描述给出了特定单元的详细描述。

我们还可以使用以下命令根据其类型列出运行服务: systemctl list-units --type service

我们还可以根据其当前状态列出服务。
它与上一个命令的输出相对相似,但更直接。 systemctl list-unit-files --type service

要列出特定服务的状态,请执行以下命令:

systemctl status [service_name]

systemctl status acpid.path

要仅列出当前在系统上运行的服务,请执行以下命令: systemctl | grep running

要列出启动中启用的所有服务,请执行以下命令: systemctl list-unit-files | grep enabled

我们还可以使用systemd-cgtop命令查看顶级控制组及其系统资源使用情况,例如I/O,CPU,任务和内存。 systemd-cgtop

我们还可以使用Pstree列出系统中的所有运行服务。
Pstree从Systemd系统输出捕获此信息。 pstree

Pstree也可以与系统V int系统一起使用。
它捕获了Sysvinit系统的输出。 pstree我们还可以使用CHKSERVICE实用程序检查系统系统中的所有运行服务。
它没有预先安装。
但是,我们可以使用以下命令通过终端安装: sudo apt-get install chkservice

安装chkservice命令

启动chkservice,执行下面的命令。
注意,我们需要超级用户权限。 sudo chkservice