Red Hat / CentOS:检查/列出正在运行的服务
有多种方式和工具可以在Fedora / RHEL / CentOS Linux系统下查找并列出所有正在运行的服务。
服务命令列表运行服务
CentOS / RHEL 6.x及更早版本(预系统)的语法如下:
service --status-all
service --status-all | more
service --status-all | grep ntpd
service --status-all | less
打印任何服务的状态
要打印apache(httpd)服务的状态:
service httpd status
列出所有已知服务(通过SysV配置)
chkconfig --list
列出服务及其开放端口
netstat -tulpn
打开/关闭服务
ntsysv
chkconfig service off
chkconfig service on
chkconfig httpd off
chkconfig ntpd on
ntsysv是用于配置运行级别服务的简单界面,也可以通过chkconfig进行配置。默认情况下,它配置当前的运行级别。只需键入ntsysv并选择您想要运行的服务。
有关systemd的RHEL / CentOS 7.x的注意事项
如果您使用的是基于systemd的发行版,例如Fedora Linux v22 / 23/24或RHEL / CentOS Linux 7.x +。尝试使用systemctl命令列出正在运行的服务的以下命令。它控制着systemd系统和服务管理器。
在CentOS / RHEL 7.x +上使用列出systemd服务
语法是:列出所有服务:示例输出:
systemctl
systemctl | more
systemctl | grep httpd
systemctl list-units --type service
systemctl list-units --type mount
systemctl list-unit-files
图01:列出CentOS / RHEL 7 systemd系统上安装的所有设备及其当前状态
要查看与特定服务(cgroup)关联的进程,可以使用systemd-cgtop命令。与top命令一样,systemd-cgtop基于其服务列出正在运行的进程:
systemd-cgtop
示例输出:
路径任务%CPU内存输入/秒输出/秒
/ 85 0.3 240.1M - -
/system.slice/NetworkManager.service 2 - - - -
/system.slice/auditd.service 1 - - - -
/system.slice/crond.service 1 - - - -
/system.slice/dbus.service 1 - - - -
/system.slice/lvm2-lvmetad.service 1 - - - -
/system.slice/polkit.service 1 - - - -
/system.slice/postfix.service 3 - - - -
/system.slice/rsyslog.service 1 - - - -
/system.slice/sshd.service 1 - - - -
/system.slice/...tty.slice/getty@tty1.service 1 - - - -
/system.slice/systemd-journald.service 1 - - - -
/system.slice/systemd-logind.service 1 - - - -
/system.slice/systemd-udevd.service 1 - - - -
/system.slice/tuned.service 1 - - - -
/system.slice/wpa_supplicant.service 1 - - - -
/user.slice/user-0.slice/session-2.scope 1 - - - -
/user.slice/user-1000.slice/session-1.scope 4 - - - -
仅在CentOS / RHEL 7.x +使用中列出SysV服务(不包括本地systemd服务)
chkconfig --list
示例输出:
图02:在systemd上列出基于Sysv的服务