
有许多方法和工具可以查看 Linux 中所有正在运行的服务。大多数管理员会在 System V(SysV)初始化系统中使用 service service-name status 或 /etc/init.d/service-name status,而在 systemd 初始化系统中使用 systemctl status service-name。
以上命令可以清楚地显示该服务是否在服务器上运行,这也是每个 Linux 管理员都该知道的非常简单和基础的命令。
如果你对系统环境并不熟悉,也不清楚系统在运行哪些服务,你会如何检查?
是的,我们的确有必要这样检查一下。这将有助于我们了解系统上运行了什么服务,以及哪些是必要的、哪些需要被禁用。
init(初始化initialization的简称)是在系统启动期间运行的第一个进程。init 是一个守护进程,它将持续运行直至关机。
大多数 Linux 发行版都使用如下的初始化系统之一:
- System V 是更老的初始化系统
- Upstart 是一个基于事件的传统的初始化系统的替代品
- 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
abrt-ccpp hook is installedabrtd (pid 2131)is running...abrt-dump-oops is stoppedacpid (pid 1958)is running...atd (pid 2164)is running...auditd (pid 1731)is running...Frequency scaling enabled using ondemand governorcrond (pid 2153)is running...hald (pid 1967)is running...htcacheclean is stoppedhttpd is stoppedTable: filterChain INPUT (policy ACCEPT)num target prot opt source destination1 ACCEPT all ::/0 ::/0 state RELATED,ESTABLISHED2 ACCEPT icmpv6 ::/0 ::/03 ACCEPT all ::/0 ::/04 ACCEPT tcp ::/0 ::/0 state NEW tcp dpt:805 ACCEPT tcp ::/0 ::/0 state NEW tcp dpt:216 ACCEPT tcp ::/0 ::/0 state NEW tcp dpt:227 ACCEPT tcp ::/0 ::/0 state NEW tcp dpt:258 ACCEPT tcp ::/0 ::/0 state NEW tcp dpt:20829 ACCEPT tcp ::/0 ::/0 state NEW tcp dpt:208610 ACCEPT tcp ::/0 ::/0 state NEW tcp dpt:208311 ACCEPT tcp ::/0 ::/0 state NEW tcp dpt:208712 ACCEPT tcp ::/0 ::/0 state NEW tcp dpt:1000013 REJECT all ::/0 ::/0 reject-with icmp6-adm-prohibitedChain FORWARD (policy ACCEPT)num target prot opt source destination1 REJECT all ::/0 ::/0 reject-with icmp6-adm-prohibitedChain OUTPUT (policy ACCEPT)num target prot opt source destinationiptables:Firewallisnot running.irqbalance (pid 1826)is running...Kdumpis operationallvmetad is stoppedmdmonitor is stoppedmessagebus (pid 1929)is running...SUCCESS!MySQL running (24376)rndc: neither /etc/rndc.conf nor /etc/rndc.key was foundnamed is stoppednetconsole modulenot loadedUsage: startup.sh { start | stop }Configured devices:lo eth0 eth1Currently active devices:lo eth0ntpd is stoppedportreserve (pid 1749)is running...master (pid 2107)is running...Process accounting is disabled.quota_nld is stoppedrdisc is stoppedrngd is stoppedrpcbind (pid 1840)is running...rsyslogd(pid 1756)is running...sandbox is stoppedsaslauthd is stoppedsmartd is stoppedopenssh-daemon (pid 9859)is running...svnserve is stoppedvsftpd (pid 4008)is running...xinetd (pid 2031)is running...zabbix_agentd (pid 215021492148214721462140)is running...
执行以下命令,可以只查看正在运行的服务:
# service --status-all |grep running
crond (pid 535)is running...httpd (pid 627)is running...mysqld (pid 911)is running...rndc: neither /etc/rndc.conf nor /etc/rndc.key was foundrsyslogd(pid 449)is running...saslauthd (pid 492)is running...sendmail (pid 509)is running...sm-client (pid 519)is running...openssh-daemon (pid 478)is running...xinetd (pid 485)is running...
运行以下命令以查看指定服务的状态:
# service --status-all |grep httpdhttpd (pid 627)is running...
或者,使用以下命令也可以查看指定服务的状态:
# service httpd statushttpd (pid 627)is running...
使用以下命令查看系统启动时哪些服务会被启用:
# chkconfig --list
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:offhtcacheclean 0:off 1:off 2:off 3:off 4:off 5:off 6:offhttpd 0:off 1:off 2:off 3:on 4:off 5:off 6:offip6tables 0:off 1:off 2:on 3:off 4:on 5:on 6:offiptables 0:off 1:off 2:on 3:on 4:on 5:on 6:offmodules_dep 0:off 1:off 2:on 3:on 4:on 5:on 6:offmysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:offnamed 0:off 1:off 2:off 3:off 4:off 5:off 6:offnetconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:offnetfs 0:off 1:off 2:off 3:off 4:on 5:on 6:offnetwork 0:off 1:off 2:on 3:on 4:on 5:on 6:offnmb 0:off 1:off 2:off 3:off 4:off 5:off 6:offnscd0:off 1:off 2:off 3:off 4:off 5:off 6:offportreserve 0:off 1:off 2:on 3:off 4:on 5:on 6:offquota_nld 0:off 1:off 2:off 3:off 4:off 5:off 6:offrdisc 0:off 1:off 2:off 3:off 4:off 5:off 6:offrestorecond 0:off 1:off 2:off 3:off 4:off 5:off 6:offrpcbind 0:off 1:off 2:on 3:off 4:on 5:on 6:offrsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:offsaslauthd 0:off 1:off 2:off 3:on 4:off 5:off 6:offsendmail 0:off 1:off 2:on 3:on 4:on 5:on 6:offsmb 0:off 1:off 2:off 3:off 4:off 5:off 6:offsnmpd 0:off 1:off 2:off 3:off 4:off 5:off 6:offsnmptrapd 0:off 1:off 2:off 3:off 4:off 5:off 6:offsshd0:off 1:off 2:on 3:on 4:on 5:on 6:offudev-post 0:off 1:on 2:on 3:off 4:on 5:on 6:offwinbind 0:off 1:off 2:off 3:off 4:off 5:off 6:offxinetd 0:off 1:off 2:off 3:on 4:on 5:on 6:offxinetd based services:chargen-dgram: offchargen-stream: offdaytime-dgram: offdaytime-stream: offdiscard-dgram: offdiscard-stream: offecho-dgram: offecho-stream: offfinger: offntalk: offrsync: offtalk: offtcpmux-server: offtime-dgram: offtime-stream: off
方法二:如何在 System V(SysV)系统中查看运行的服务
另外一种在 Linux 系统上列出运行的服务的方法是使用 initctl 命令:
# initctl listrc stop/waitingtty(/dev/tty3) start/running, process 1740tty(/dev/tty2) start/running, process 1738tty(/dev/tty1) start/running, process 1736tty(/dev/tty6) start/running, process 1746tty(/dev/tty5) start/running, process 1744tty(/dev/tty4) start/running, process 1742plymouth-shutdown stop/waitingcontrol-alt-delete stop/waitingrcS-emergency stop/waitingreadahead-collector stop/waitingkexec-disable stop/waitingquit-plymouth stop/waitingrcS stop/waitingprefdm stop/waitinginit-system-dbus stop/waitingck-log-system-restart stop/waitingreadahead stop/waitingck-log-system-start stop/waitingsplash-manager stop/waitingstart-ttys stop/waitingreadahead-disable-services stop/waitingck-log-system-stop stop/waitingrcS-sulogin stop/waitingserial stop/waiting
方法三:如何在 systemd 系统中查看运行的服务
以下命令帮助我们列出 systemd 系统中所有服务:
#systemctlUNIT LOAD ACTIVE SUB DESCRIPTIONsys-devices-virtual-block-loop0.device loaded active plugged /sys/devices/virtual/block/loop0sys-devices-virtual-block-loop1.device loaded active plugged /sys/devices/virtual/block/loop1sys-devices-virtual-block-loop2.device loaded active plugged /sys/devices/virtual/block/loop2sys-devices-virtual-block-loop3.device loaded active plugged /sys/devices/virtual/block/loop3sys-devices-virtual-block-loop4.device loaded active plugged /sys/devices/virtual/block/loop4sys-devices-virtual-misc-rfkill.device loaded active plugged /sys/devices/virtual/misc/rfkillsys-devices-virtual-tty-ttyprintk.device loaded active plugged /sys/devices/virtual/tty/ttyprintksys-module-fuse.device loaded active plugged /sys/module/fusesys-subsystem-net-devices-enp0s3.device loaded active plugged 82540EMGigabitEthernetController(PRO/1000 MT DesktopAdapter)-.mount loaded active mounted RootMountdev-hugepages.mount loaded active mounted HugePagesFileSystemdev-mqueue.mount loaded active mounted POSIX MessageQueueFileSystemrun-user-1000-gvfs.mount loaded active mounted /run/user/1000/gvfsrun-user-1000.mount loaded active mounted /run/user/1000snap-core-3887.mount loaded active mounted Mount unit for coresnap-core-4017.mount loaded active mounted Mount unit for coresnap-core-4110.mount loaded active mounted Mount unit for coresnap-gping-13.mount loaded active mounted Mount unit for gpingsnap-termius\x2dapp-8.mount loaded active mounted Mount unit for termius-appsys-fs-fuse-connections.mount loaded active mounted FUSE ControlFileSystemsys-kernel-debug.mount loaded active mounted DebugFileSystemacpid.path loaded active running ACPI EventsCheckcups.path loaded active running CUPS Schedulersystemd-ask-password-plymouth.path loaded active waiting ForwardPasswordRequests to PlymouthDirectoryWatchsystemd-ask-password-wall.path loaded active waiting ForwardPasswordRequests to WallDirectoryWatchinit.scope loaded active running SystemandServiceManagersession-c2.scope loaded active running Session c2 of user magiaccounts-daemon.service loaded active running AccountsServiceacpid.service loaded active running ACPI event daemonanacron.service loaded active running Run anacron jobsapache2.service loaded active running TheApache HTTP Serverapparmor.service loaded active exited AppArmor initializationapport.service loaded active exited LSB: automatic crash report generationaptik-battery-monitor.service loaded active running LSB: start/stop the aptik battery monitor daemonatop.service loaded active running Atop advanced performance monitoratopacct.service loaded active running Atop process accounting daemonavahi-daemon.service loaded active running Avahi mDNS/DNS-SD Stackcolord.service loaded active running Manage,InstallandGenerateColorProfilesconsole-setup.service loaded active exited Set console font and keymapcron.service loaded active running Regular background program processing daemoncups-browsed.service loaded active running Make remote CUPS printers available locallycups.service loaded active running CUPS Schedulerdbus.service loaded active running D-BusSystemMessageBuspostfix.service loaded active exited PostfixMailTransportAgent
UNIT相应的 systemd 单元名称LOAD相应的单元是否被加载到内存中ACTIVE该单元是否处于活动状态SUB该单元是否处于运行状态(LCTT 译注:是较于 ACTIVE 更加详细的状态描述,不同的单元类型有不同的状态。)DESCRIPTION关于该单元的简短描述
以下选项可根据类型列出单元:
#systemctllist-units --type serviceUNIT LOAD ACTIVE SUB DESCRIPTIONaccounts-daemon.service loaded active running AccountsServiceacpid.service loaded active running ACPI event daemonanacron.service loaded active running Run anacron jobsapache2.service loaded active running TheApache HTTP Serverapparmor.service loaded active exited AppArmor initializationapport.service loaded active exited LSB: automatic crash report generationaptik-battery-monitor.service loaded active running LSB: start/stop the aptik battery monitor daemonatop.service loaded active running Atop advanced performance monitoratopacct.service loaded active running Atop process accounting daemonavahi-daemon.service loaded active running Avahi mDNS/DNS-SD Stackcolord.service loaded active running Manage,InstallandGenerateColorProfilesconsole-setup.service loaded active exited Set console font and keymapcron.service loaded active running Regular background program processing daemoncups-browsed.service loaded active running Make remote CUPS printers available locallycups.service loaded active running CUPS Schedulerdbus.service loaded active running D-BusSystemMessageBusfwupd.service loaded active running Firmware update daemongetty@tty1.service loaded active running Getty on tty1grub-common.service loaded active exited LSB:Record successful boot for GRUBirqbalance.service loaded active running LSB: daemon to balance interrupts for SMP systemskeyboard-setup.service loaded active exited Set the console keyboard layoutkmod-static-nodes.service loaded active exited Createlist of required static device nodes for the current kernel
以下选项可帮助您根据状态列出单位,输出与前例类似但更直截了当:
#systemctllist-unit-files --type serviceUNIT FILE STATEaccounts-daemon.service enabledacpid.service disabledalsa-restore.service staticalsa-state.service staticalsa-utils.service maskedanacron-resume.service enabledanacron.service enabledapache-htcacheclean.service disabledapache-htcacheclean@.service disabledapache2.service enabledapache2@.service disabledapparmor.service enabledapport-forward@.service staticapport.service generatedapt-daily-upgrade.service staticapt-daily.service staticaptik-battery-monitor.service generatedatop.service enabledatopacct.service enabledautovt@.service enabledavahi-daemon.service enabledbluetooth.service enabled
运行以下命令以查看指定服务的状态:
#systemctl|grep apache2apache2.service loaded active running TheApache HTTP Server
或者,使用以下命令也可查看指定服务的状态:
#systemctl status apache2● apache2.service -TheApache HTTP ServerLoaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)Drop-In:/lib/systemd/system/apache2.service.d└─apache2-systemd.confActive: active (running) since Tue2018-03-0612:34:09 IST;8min agoProcess:2786ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS)Main PID:1171(apache2)Tasks:55(limit:4915)CGroup:/system.slice/apache2.service├─1171/usr/sbin/apache2 -k start├─2790/usr/sbin/apache2 -k start└─2791/usr/sbin/apache2 -k startMar0612:34:08 magi-VirtualBoxsystemd[1]:StartingTheApache HTTP Server...Mar0612:34:09 magi-VirtualBox apachectl[1089]: AH00558: apache2:Couldnot reliably determine the server's fully qualified domain name, using 10.0.2.15. Set the 'ServerName' directive globally to suppreMar 06 12:34:09 magi-VirtualBox systemd[1]: Started The Apache HTTP Server.Mar 06 12:39:10 magi-VirtualBox systemd[1]: Reloading The Apache HTTP Server.Mar 06 12:39:10 magi-VirtualBox apachectl[2786]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name,using fe80::7929:4ed1:279f:4d65.Set the 'ServerName' directive glMar0612:39:10 magi-VirtualBoxsystemd[1]:ReloadedTheApache HTTP Server.
执行以下命令,只查看正在运行的服务:
#systemctl|grep runningacpid.path loaded active running ACPI EventsCheckcups.path loaded active running CUPS Schedulerinit.scope loaded active running SystemandServiceManagersession-c2.scope loaded active running Session c2 of user magiaccounts-daemon.service loaded active running AccountsServiceacpid.service loaded active running ACPI event daemonapache2.service loaded active running TheApache HTTP Serveraptik-battery-monitor.service loaded active running LSB: start/stop the aptik battery monitor daemonatop.service loaded active running Atop advanced performance monitoratopacct.service loaded active running Atop process accounting daemonavahi-daemon.service loaded active running Avahi mDNS/DNS-SD Stackcolord.service loaded active running Manage,InstallandGenerateColorProfilescron.service loaded active running Regular background program processing daemoncups-browsed.service loaded active running Make remote CUPS printers available locallycups.service loaded active running CUPS Schedulerdbus.service loaded active running D-BusSystemMessageBusfwupd.service loaded active running Firmware update daemongetty@tty1.service loaded active running Getty on tty1irqbalance.service loaded active running LSB: daemon to balance interrupts for SMP systemslightdm.service loaded active running LightDisplayManagerModemManager.service loaded active running ModemManagerNetworkManager.service loaded active running NetworkManagerpolkit.service loaded active running AuthorizationManager
使用以下命令查看系统启动时会被启用的服务列表:
#systemctllist-unit-files |grep enabledacpid.path enabledcups.path enabledaccounts-daemon.service enabledanacron-resume.service enabledanacron.service enabledapache2.service enabledapparmor.service enabledatop.service enabledatopacct.service enabledautovt@.service enabledavahi-daemon.service enabledbluetooth.service enabledconsole-setup.service enabledcron.service enabledcups-browsed.service enabledcups.service enableddisplay-manager.service enableddns-clean.service enabledfriendly-recovery.service enabledgetty@.service enabledgpu-manager.service enabledkeyboard-setup.service enabledlightdm.service enabledModemManager.service enablednetwork-manager.service enablednetworking.service enabledNetworkManager-dispatcher.service enabledNetworkManager-wait-online.service enabledNetworkManager.service enabled
systemd-cgtop 按资源使用情况(任务、CPU、内存、输入和输出)列出控制组:
#systemd-cgtopControlGroupTasks%CPU MemoryInput/s Output/s/--1.5G--/init.scope 1----/system.slice 153----/system.slice/ModemManager.service 3----/system.slice/NetworkManager.service 4----/system.slice/accounts-daemon.service 3----/system.slice/acpid.service 1----/system.slice/apache2.service 55----/system.slice/aptik-battery-monitor.service 1----/system.slice/atop.service 1----/system.slice/atopacct.service 1----/system.slice/avahi-daemon.service 2----/system.slice/colord.service 3----/system.slice/cron.service 1----/system.slice/cups-browsed.service 3----/system.slice/cups.service 2----/system.slice/dbus.service 6----/system.slice/fwupd.service 5----/system.slice/irqbalance.service 1----/system.slice/lightdm.service 7----/system.slice/polkit.service 3----/system.slice/repowerd.service 14----/system.slice/rsyslog.service 4----/system.slice/rtkit-daemon.service 3----/system.slice/snapd.service 8----/system.slice/system-getty.slice 1----
同时,我们可以使用 pstree 命令(输出来自 SysVinit 系统)查看正在运行的服务:
#pstreeinit-+-crond|-httpd---2*[httpd]|-kthreadd/99149---khelper/99149|-2*[mingetty]|-mysqld_safe---mysqld---9*[{mysqld}]|-rsyslogd---3*[{rsyslogd}]|-saslauthd---saslauthd|-2*[sendmail]|-sshd---sshd---bash---pstree|-udevd`-xinetd
我们还可以使用 pstree 命令(输出来自 systemd 系统)查看正在运行的服务:
#pstreesystemd─┬─ModemManager─┬─{gdbus}│└─{gmain}├─NetworkManager─┬─dhclient│├─{gdbus}│└��{gmain}├─accounts-daemon─┬─{gdbus}│└─{gmain}├─acpid├─agetty├─anacron├─apache2───2*[apache2───26*[{apache2}]]├─aptd───{gmain}├─aptik-battery-m├─atop├─atopacctd├─avahi-daemon───avahi-daemon├─colord─┬─{gdbus}│└─{gmain}├─cron├─cups-browsed─┬─{gdbus}│└─{gmain}├─cupsd├─dbus-daemon├─fwupd─┬─{GUsbEventThread}│├─{fwupd}│├─{gdbus}│└─{gmain}├─gnome-keyring-d─┬─{gdbus}│├─{gmain}│└─{timer}
方法四:如何使用 chkservice 在 systemd 系统中查看正在运行的服务
chkservice 是一个管理系统单元的终端工具,需要超级用户权限。
# chkservice

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

via: https://www.2daygeek.com/how-to-check-all-running-services-in-linux/
作者:Magesh Maruthamuthu 译者:jessie-pang 校对:wxy
本文由 LCTT 原创编译,Linux中国 荣誉推出
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx
本文永久更新链接地址:https://www.linuxidc.com/Linux/2018-08/153512.htm
服务器评测





