🐧如何列出在Linux上啟動時啟動的服務
默認情況下,一些重要的系統服務會在系統啟動時自動啟動。 例如,NetworkManager和Firewalld服務將在系統啟動時自動啟動。 啟動服務在Linux和類似Unix的操作系統上也稱為守護程序。 他們將繼續在後台運行,並且無需用戶干預即可完成工作。 除了系統服務之外,還將將一些其他第三方應用程序添加到啟動中。 在本快速教程中,讓我們看看如何在Linux和Unix-like系統的啟動時查找和列出啟動服務。
Linux中啟動時的自動啟動服務列表
啟動服務的列表取決於初始化系統。
Systemd是Linux發行版主要更新版本的默認初始化系統。
如果您的系統正在運行systemd系統管理器,則可以使用以下命令列出所有服務:
$ sudo systemctl list-unit-files --type=service
輸出示例:
UNIT FILE STATE VENDOR PRESET
accounts-daemon.service enabled enabled
acpid.service disabled enabled
alsa-restore.service static enabled
alsa-state.service static enabled
alsa-utils.service masked enabled
anacron.service enabled enabled
apparmor.service enabled enabled
apport-autoreport.service static enabled
[email protected] static enabled
apport.service generated enabled
.
.
.
[email protected] static enabled
whoopsie.service disabled enabled
[email protected] disabled enabled
[email protected] disabled enabled
wpa_supplicant.service enabled enabled
[email protected] disabled enabled
x11-common.service masked enabled
[email protected] static enabled
xfs_scrub_all.service static enabled
[email protected] static enabled
265 unit files listed.
如上所述,此命令顯示Linux系統上所有服務(在系統引導時啟用和禁用)的列表。
您可以通過查看以上輸出中的STATE部分來進行檢查。
在啟動時啟動的服務被標記為 已啟用和無法啟動的服務標記為 殘障人士…
要在系統啟動時僅列出已啟用的服務,請運行:
$ sudo systemctl list-unit-files --type=service --state=enabled --all
輸出示例:
UNIT FILE STATE VENDOR PRESET
accounts-daemon.service enabled enabled
anacron.service enabled enabled
apparmor.service enabled enabled
[email protected] enabled enabled
avahi-daemon.service enabled enabled
.
.
.
udisks2.service enabled enabled
ufw.service enabled enabled
unattended-upgrades.service enabled enabled
vboxweb.service enabled enabled
wpa_supplicant.service enabled enabled
74 unit files listed.
要列出系統引導時所有禁用的服務,請運行:
$ sudo systemctl list-unit-files --type=service --state=disabled --all
如我所說,某些較舊的Linux發行版可能使用SysV或Upstart作為它們的默認初始化系統。 如果您的系統使用sysv,請運行以下命令列出所有服務:
$ sudo service --status-all
輸出示例:
[ + ] acpid
[ - ] alsa-utils
[ - ] anacron
[ + ] apparmor
[ + ] apport
[ + ] avahi-daemon
[ + ] bluetooth
[ - ] console-setup.sh
[ + ] cron
[ - ] cryptdisks
[ - ] cryptdisks-early
[ + ] cups
[ + ] cups-browsed
[ + ] dbus
[ - ] dns-clean
[ + ] dnsmasq
[ + ] exim4
[ + ] gdm3
[ + ] grub-common
[ + ] hddtemp
[ - ] hwclock.sh
[ + ] irqbalance
[ + ] kerneloops
[ - ] keyboard-setup.sh
[ + ] kmod
[ + ] lm-sensors
[ - ] lvm2
[ - ] lvm2-lvmpolld
[ + ] network-manager
[ + ] networking
[ + ] openvpn
[ - ] plymouth
[ - ] plymouth-log
[ - ] pppd-dns
[ + ] procps
[ - ] pulseaudio-enable-autospawn
[ - ] rsync
[ + ] rsyslog
[ - ] saned
[ - ] screen-cleanup
[ + ] smartmontools
[ - ] speech-dispatcher
[ - ] spice-vdagent
[ + ] sysstat
[ + ] udev
[ + ] ufw
[ + ] unattended-upgrades
[ - ] uuidd
[ + ] virtualbox
[ - ] whoopsie
[ - ] x11-common
在此,+表示服務正在運行,而-表示服務已停止。 要列出啟動運行時啟用的所有服務:
$ sudo chkconfig --list
此命令將在每個運行級別顯示每個服務的狀態。
上面命令的輸出示例如下:
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
anamon 0:off 1:off 2:off 3:off 4:off 5:off 6:off
atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
[...]
在上面的命令中,“ on”表示服務在引導時啟動。
您還可以在不同的運行級別查看特定服務的狀態,如下所示:
$ sudo chkconfig --list httpd
如果您的Linux系統使用新貴,請運行以下命令以列出所有啟動服務:
$ sudo initctl list
上面的命令將顯示所有任務 屆會
如果你想展示一切 系統 任務,運行:
$ sudo initctl --system list
要列出所有服務並在每個運行級別顯示其狀態,請運行:
$ sudo initctl list | awk '{ print $1 }' | xargs -n1 initctl show-config
要顯示特定服務的狀態,請運行以下命令:
$ initctl show-config <service_name>
在系統啟動時禁用服務
您在計算機上安裝的應用程序越多,系統啟動所需的時間就越長。
為了減少Linux系統的啟動時間,您需要查找不必要的服務並將其禁用。
例如,假設您不希望在操作系統啟動時加載unattended-upgradedes.service,則可以使用以下命令將其禁用:
$ sudo systemctl disable --now unattended-upgrades.service
要查看在啟動時是否啟用了服務,請運行:
$ sudo systemctl is-enabled <service-name>