Linux系统服务(有时称为守护进程)是在Linux启动时自动加载的系统任务,在Linux退出时自动停止。
在本文中,我将向您展示如何列出在Linux系统上运行的所有服务以及如何检查服务的当前状态。
Centos/RHEL 7.X systemd系统服务视图
从CentOS 7.x开始,CentOS开始使用systemd服务而不是守护进程。与管理系统启动和管理系统服务相关的命令全部由systemctl命令替换。
Systemctl list-unit-files
该命令的输出如下:
要查看所有正在运行的systemd服务,可以运行以下命令:
Systemctl |更多
该命令的输出如下:
除此之外,您还可以使用以下命令:
Systemctl list-units - type service
该命令的输出如下:
如果要在结果中搜索特定服务,可以使用pipe和grep命令。
Systemctl | grep'apache2'
该命令的输出如下:
使用netstat命令查看系统服务
Netstat命令用于检查活动网络连接,接口统计信息和路由表状态。此命令在所有Linux发行版中都可用,我们将使用它来查看系统服务。
查看他们正在收听的服务和端口:
Netstat -pnltu
该命令的输出如下:
通过系统服务配置文件查看系统服务
服务的配置文件是/etc/services是一个ASCII文件,其中包含用户程序可能使用的服务列表。在此文件中,包括服务名称,端口号,使用的协议和一些别名。
对于这个文件,我们可以使用任何文本工具来查看,例如vim:
Vim/etc/services
该命令的输出如下:
查看systemd服务状态
在一些较新的Linux系统上,有些人使用systemd来替换init进程。在此系统中,如何查看系统服务?我们可以使用以下语法:Systemctl status service_name
例如,要查看系统上的OpenSSH是否正在运行,您可以运行:
Systemctl状态sshd
该命令的输出如下:
或者,您可以使用以下命令格式查看服务是否正在运行:
Systemctl是活动的service_name
如果使用此命令,则与上例对应的命令为:
Systemctl是活动的sshd
该命令的输出如下:
同时,您还可以检查是否已启用服务。您可以使用以下命令:
Systemctl已启用service_name
例如,要检查是否已启用OpenSSH服务,可以输入以下命令:
Systemctl已启用sshd
该命令的输出如下:
早期版本的服务状态视图
事实上,它不能说在早期。仍然有许多这样的系统运行SysV init进程。对于此类系统,查看服务状态的命令是:
服务service_name状态
仍然看到OpenSSH状态的一个例子,相应的命令是:
服务sshd状态
该命令的输出如下:
您还可以使用以下命令查看所有服务状态:
Chkconfig --list
该命令的输出如下: