diff --git a/translated/tech/20180306 How To Check All Running Services In Linux.md b/translated/tech/20180306 How To Check All Running Services In Linux.md new file mode 100644 index 0000000000..b9e136a5fc --- /dev/null +++ b/translated/tech/20180306 How To Check All Running Services In Linux.md @@ -0,0 +1,516 @@ +如何查看 Linux 中所有正在运行的服务 +====== + + +有许多方法和工具可以查看 Linux 中所有正在运行的服务。大多数管理员会在 sysVinit 系统中使用 `service service-name status` 或 `/etc/init.d/service-name status`,而在 systemd 系统中使用 `systemctl status service-name`。 + +以上命令可以清楚地显示该服务是否在服务器上运行,这也是每个 Linux 管理员都该知道的非常简单和基础的命令。 + +如果你对系统环境并不熟悉,也不清楚系统在运行哪些服务,你会如何检查? + +是的,我们的确有必要这样检查一下。这将有助于我们了解系统上运行了什么服务,以及哪些是必要的、哪些需要被禁用。 + +### 什么是 SysVinit + +init(初始化 initialization 的简称)是在系统启动期间运行的第一个进程。Init 是一个守护进程,它将持续运行直至关机。 + +SysVinit 是早期传统的 init 系统和系统管理器。由于 sysVinit 系统上一些长期悬而未决的问题,大多数最新的发行版都适用于 systemd 系统。 + +### 什么是 systemd + +systemd 是一个新的 init 系统以及系统管理器,它已成为大多数 Linux 发行版中非常流行且广泛适应的新的标准 init 系统。Systemctl 是一个 systemd 管理工具,它可以帮助我们管理 systemd 系统。 + +### 方法一:如何在 sysVinit 系统中查看运行的服务 + +以下命令可以帮助我们列出 sysVinit 系统中所有正在运行的服务。 + +如果服务很多,我建议使用文件视图命令,如 less、more 等,以便得到清晰的结果。 +``` +# service --status-all +or +# service --status-all | more +or +# service --status-all | less + +abrt-ccpp hook is installed +abrtd (pid 2131) is running... +abrt-dump-oops is stopped +acpid (pid 1958) is running... +atd (pid 2164) is running... +auditd (pid 1731) is running... +Frequency scaling enabled using ondemand governor +crond (pid 2153) is running... +hald (pid 1967) is running... +htcacheclean is stopped +httpd is stopped +Table: filter +Chain INPUT (policy ACCEPT) +num target prot opt source destination +1 ACCEPT all ::/0 ::/0 state RELATED,ESTABLISHED +2 ACCEPT icmpv6 ::/0 ::/0 +3 ACCEPT all ::/0 ::/0 +4 ACCEPT tcp ::/0 ::/0 state NEW tcp dpt:80 +5 ACCEPT tcp ::/0 ::/0 state NEW tcp dpt:21 +6 ACCEPT tcp ::/0 ::/0 state NEW tcp dpt:22 +7 ACCEPT tcp ::/0 ::/0 state NEW tcp dpt:25 +8 ACCEPT tcp ::/0 ::/0 state NEW tcp dpt:2082 +9 ACCEPT tcp ::/0 ::/0 state NEW tcp dpt:2086 +10 ACCEPT tcp ::/0 ::/0 state NEW tcp dpt:2083 +11 ACCEPT tcp ::/0 ::/0 state NEW tcp dpt:2087 +12 ACCEPT tcp ::/0 ::/0 state NEW tcp dpt:10000 +13 REJECT all ::/0 ::/0 reject-with icmp6-adm-prohibited + +Chain FORWARD (policy ACCEPT) +num target prot opt source destination +1 REJECT all ::/0 ::/0 reject-with icmp6-adm-prohibited + +Chain OUTPUT (policy ACCEPT) +num target prot opt source destination + +iptables: Firewall is not running. +irqbalance (pid 1826) is running... +Kdump is operational +lvmetad is stopped +mdmonitor is stopped +messagebus (pid 1929) is running... + SUCCESS! MySQL running (24376) +rndc: neither /etc/rndc.conf nor /etc/rndc.key was found +named is stopped +netconsole module not loaded +Usage: startup.sh { start | stop } +Configured devices: +lo eth0 eth1 +Currently active devices: +lo eth0 +ntpd is stopped +portreserve (pid 1749) is running... +master (pid 2107) is running... +Process accounting is disabled. +quota_nld is stopped +rdisc is stopped +rngd is stopped +rpcbind (pid 1840) is running... +rsyslogd (pid 1756) is running... +sandbox is stopped +saslauthd is stopped +smartd is stopped +openssh-daemon (pid 9859) is running... +svnserve is stopped +vsftpd (pid 4008) is running... +xinetd (pid 2031) is running... +zabbix_agentd (pid 2150 2149 2148 2147 2146 2140) 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 found +rsyslogd (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 httpd +httpd (pid 627) is running... + +``` + +或者,使用以下命令也可以查看指定服务的状态。 +``` +# service httpd status + +httpd (pid 627) is running... + +``` + +使用以下命令查看系统启动时哪些服务会被启用。 +``` +# chkconfig --list +crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off +htcacheclean 0:off 1:off 2:off 3:off 4:off 5:off 6:off +httpd 0:off 1:off 2:off 3:on 4:off 5:off 6:off +ip6tables 0:off 1:off 2:on 3:off 4:on 5:on 6:off +iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off +modules_dep 0:off 1:off 2:on 3:on 4:on 5:on 6:off +mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off +named 0:off 1:off 2:off 3:off 4:off 5:off 6:off +netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off +netfs 0:off 1:off 2:off 3:off 4:on 5:on 6:off +network 0:off 1:off 2:on 3:on 4:on 5:on 6:off +nmb 0:off 1:off 2:off 3:off 4:off 5:off 6:off +nscd 0:off 1:off 2:off 3:off 4:off 5:off 6:off +portreserve 0:off 1:off 2:on 3:off 4:on 5:on 6:off +quota_nld 0:off 1:off 2:off 3:off 4:off 5:off 6:off +rdisc 0:off 1:off 2:off 3:off 4:off 5:off 6:off +restorecond 0:off 1:off 2:off 3:off 4:off 5:off 6:off +rpcbind 0:off 1:off 2:on 3:off 4:on 5:on 6:off +rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off +saslauthd 0:off 1:off 2:off 3:on 4:off 5:off 6:off +sendmail 0:off 1:off 2:on 3:on 4:on 5:on 6:off +smb 0:off 1:off 2:off 3:off 4:off 5:off 6:off +snmpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off +snmptrapd 0:off 1:off 2:off 3:off 4:off 5:off 6:off +sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off +udev-post 0:off 1:on 2:on 3:off 4:on 5:on 6:off +winbind 0:off 1:off 2:off 3:off 4:off 5:off 6:off +xinetd 0:off 1:off 2:off 3:on 4:on 5:on 6:off + +xinetd based services: + chargen-dgram: off + chargen-stream: off + daytime-dgram: off + daytime-stream: off + discard-dgram: off + discard-stream: off + echo-dgram: off + echo-stream: off + finger: off + ntalk: off + rsync: off + talk: off + tcpmux-server: off + time-dgram: off + time-stream: off + +``` + +### 方法二:如何在 systemd 系统中查看运行的服务 + +以下命令帮助我们列出 systemd 系统中所有服务。 +``` +# systemctl + + UNIT LOAD ACTIVE SUB DESCRIPTION + sys-devices-virtual-block-loop0.device loaded active plugged /sys/devices/virtual/block/loop0 + sys-devices-virtual-block-loop1.device loaded active plugged /sys/devices/virtual/block/loop1 + sys-devices-virtual-block-loop2.device loaded active plugged /sys/devices/virtual/block/loop2 + sys-devices-virtual-block-loop3.device loaded active plugged /sys/devices/virtual/block/loop3 + sys-devices-virtual-block-loop4.device loaded active plugged /sys/devices/virtual/block/loop4 + sys-devices-virtual-misc-rfkill.device loaded active plugged /sys/devices/virtual/misc/rfkill + sys-devices-virtual-tty-ttyprintk.device loaded active plugged /sys/devices/virtual/tty/ttyprintk + sys-module-fuse.device loaded active plugged /sys/module/fuse + sys-subsystem-net-devices-enp0s3.device loaded active plugged 82540EM Gigabit Ethernet Controller (PRO/1000 MT Desktop Adapter) + -.mount loaded active mounted Root Mount + dev-hugepages.mount loaded active mounted Huge Pages File System + dev-mqueue.mount loaded active mounted POSIX Message Queue File System + run-user-1000-gvfs.mount loaded active mounted /run/user/1000/gvfs + run-user-1000.mount loaded active mounted /run/user/1000 + snap-core-3887.mount loaded active mounted Mount unit for core + snap-core-4017.mount loaded active mounted Mount unit for core + snap-core-4110.mount loaded active mounted Mount unit for core + snap-gping-13.mount loaded active mounted Mount unit for gping + snap-termius\x2dapp-8.mount loaded active mounted Mount unit for termius-app + sys-fs-fuse-connections.mount loaded active mounted FUSE Control File System + sys-kernel-debug.mount loaded active mounted Debug File System + acpid.path loaded active running ACPI Events Check + cups.path loaded active running CUPS Scheduler + systemd-ask-password-plymouth.path loaded active waiting Forward Password Requests to Plymouth Directory Watch + systemd-ask-password-wall.path loaded active waiting Forward Password Requests to Wall Directory Watch + init.scope loaded active running System and Service Manager + session-c2.scope loaded active running Session c2 of user magi + accounts-daemon.service loaded active running Accounts Service + acpid.service loaded active running ACPI event daemon + anacron.service loaded active running Run anacron jobs + apache2.service loaded active running The Apache HTTP Server + apparmor.service loaded active exited AppArmor initialization + apport.service loaded active exited LSB: automatic crash report generation + aptik-battery-monitor.service loaded active running LSB: start/stop the aptik battery monitor daemon + atop.service loaded active running Atop advanced performance monitor + atopacct.service loaded active running Atop process accounting daemon + avahi-daemon.service loaded active running Avahi mDNS/DNS-SD Stack + colord.service loaded active running Manage, Install and Generate Color Profiles + console-setup.service loaded active exited Set console font and keymap + cron.service loaded active running Regular background program processing daemon + cups-browsed.service loaded active running Make remote CUPS printers available locally + cups.service loaded active running CUPS Scheduler + dbus.service loaded active running D-Bus System Message Bus + postfix.service loaded active exited Postfix Mail Transport Agent + +``` + + * **`UNIT`** 相应的 systemd 单元名称 + * **`LOAD`** 相应的单元是否被加载到内存中 + * **`ACTIVE`** 该单元是否处于活动状态 + * **`SUB`** 该单元是否处于运行状态(LCTT 译者注:是较于 ACTIVE 更加详细的状态描述,不同的单元类型有不同的状态。) + * **`DESCRIPTION`** 关于该单元的简短描述 + + +以下选项可根据类型列出单元。 +``` +# systemctl list-units --type service + UNIT LOAD ACTIVE SUB DESCRIPTION + accounts-daemon.service loaded active running Accounts Service + acpid.service loaded active running ACPI event daemon + anacron.service loaded active running Run anacron jobs + apache2.service loaded active running The Apache HTTP Server + apparmor.service loaded active exited AppArmor initialization + apport.service loaded active exited LSB: automatic crash report generation + aptik-battery-monitor.service loaded active running LSB: start/stop the aptik battery monitor daemon + atop.service loaded active running Atop advanced performance monitor + atopacct.service loaded active running Atop process accounting daemon + avahi-daemon.service loaded active running Avahi mDNS/DNS-SD Stack + colord.service loaded active running Manage, Install and Generate Color Profiles + console-setup.service loaded active exited Set console font and keymap + cron.service loaded active running Regular background program processing daemon + cups-browsed.service loaded active running Make remote CUPS printers available locally + cups.service loaded active running CUPS Scheduler + dbus.service loaded active running D-Bus System Message Bus + fwupd.service loaded active running Firmware update daemon + [email protected] loaded active running Getty on tty1 + grub-common.service loaded active exited LSB: Record successful boot for GRUB + irqbalance.service loaded active running LSB: daemon to balance interrupts for SMP systems + keyboard-setup.service loaded active exited Set the console keyboard layout + kmod-static-nodes.service loaded active exited Create list of required static device nodes for the current kernel + +``` + +以下选项可帮助您根据状态列出单位,输出与前例类似但更直截了当。 +``` +# systemctl list-unit-files --type service + +UNIT FILE STATE +accounts-daemon.service enabled +acpid.service disabled +alsa-restore.service static +alsa-state.service static +alsa-utils.service masked +anacron-resume.service enabled +anacron.service enabled +apache-htcacheclean.service disabled +[email protected] disabled +apache2.service enabled +[email protected] disabled +apparmor.service enabled +[email protected] static +apport.service generated +apt-daily-upgrade.service static +apt-daily.service static +aptik-battery-monitor.service generated +atop.service enabled +atopacct.service enabled +[email protected] enabled +avahi-daemon.service enabled +bluetooth.service enabled + +``` + +运行以下命令以查看指定服务的状态。 +``` +# systemctl | grep apache2 + apache2.service loaded active running The Apache HTTP Server + +``` + +或者,使用以下命令也可查看指定服务的状态。 +``` +# systemctl status apache2 +● apache2.service - The Apache HTTP Server + Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) + Drop-In: /lib/systemd/system/apache2.service.d + └─apache2-systemd.conf + Active: active (running) since Tue 2018-03-06 12:34:09 IST; 8min ago + Process: 2786 ExecReload=/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 start + +Mar 06 12:34:08 magi-VirtualBox systemd[1]: Starting The Apache HTTP Server... +Mar 06 12:34:09 magi-VirtualBox apachectl[1089]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 10.0.2.15. Set the 'ServerName' directive globally to suppre +Mar 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 gl +Mar 06 12:39:10 magi-VirtualBox systemd[1]: Reloaded The Apache HTTP Server. + +``` + +执行以下命令,只查看正在运行的服务。 +``` +# systemctl | grep running + acpid.path loaded active running ACPI Events Check + cups.path loaded active running CUPS Scheduler + init.scope loaded active running System and Service Manager + session-c2.scope loaded active running Session c2 of user magi + accounts-daemon.service loaded active running Accounts Service + acpid.service loaded active running ACPI event daemon + apache2.service loaded active running The Apache HTTP Server + aptik-battery-monitor.service loaded active running LSB: start/stop the aptik battery monitor daemon + atop.service loaded active running Atop advanced performance monitor + atopacct.service loaded active running Atop process accounting daemon + avahi-daemon.service loaded active running Avahi mDNS/DNS-SD Stack + colord.service loaded active running Manage, Install and Generate Color Profiles + cron.service loaded active running Regular background program processing daemon + cups-browsed.service loaded active running Make remote CUPS printers available locally + cups.service loaded active running CUPS Scheduler + dbus.service loaded active running D-Bus System Message Bus + fwupd.service loaded active running Firmware update daemon + [email protected] loaded active running Getty on tty1 + irqbalance.service loaded active running LSB: daemon to balance interrupts for SMP systems + lightdm.service loaded active running Light Display Manager + ModemManager.service loaded active running Modem Manager + NetworkManager.service loaded active running Network Manager + polkit.service loaded active running Authorization Manager + +``` + +使用以下命令查看系统启动时会被启用的服务列表。 +``` +# systemctl list-unit-files | grep enabled +acpid.path enabled +cups.path enabled +accounts-daemon.service enabled +anacron-resume.service enabled +anacron.service enabled +apache2.service enabled +apparmor.service enabled +atop.service enabled +atopacct.service enabled +[email protected] enabled +avahi-daemon.service enabled +bluetooth.service enabled +console-setup.service enabled +cron.service enabled +cups-browsed.service enabled +cups.service enabled +display-manager.service enabled +dns-clean.service enabled +friendly-recovery.service enabled +[email protected] enabled +gpu-manager.service enabled +keyboard-setup.service enabled +lightdm.service enabled +ModemManager.service enabled +network-manager.service enabled +networking.service enabled +NetworkManager-dispatcher.service enabled +NetworkManager-wait-online.service enabled +NetworkManager.service enabled + +``` + +systemd-cgtop 按资源使用情况(任务、CPU、内存、输入和输出)列出控制组。 +``` +# systemd-cgtop + +Control Group Tasks %CPU Memory Input/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 系统)查看正在运行的服务。 +``` +# pstree +init-|-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 系统)查看正在运行的服务。 +``` +# pstree +systemd─┬─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 + +``` + +![][1] + +要查看帮助页面,请单击 `?` 按钮,它将显示管理 systemd 服务的可用选项。 +![][2] + +-------------------------------------------------------------------------------- + +via: https://www.2daygeek.com/how-to-check-all-running-services-in-linux/ + +作者:[Magesh Maruthamuthu][a] +译者:[jessie-pang](https://github.com/jessie-pang) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:https://www.2daygeek.com/author/magesh/ +[1]:https://www.2daygeek.com/wp-content/uploads/2018/03/chkservice-1.png +[2]:https://www.2daygeek.com/wp-content/uploads/2018/03/chkservice-2.png \ No newline at end of file