默認情況下,系統啟動時會自動啟動一些重要的系統服務。例如,NetworkManager 和 Firewalld 服務會在系統啟動時自動啟動。啟動服務在 Linux 和類 Unix 操作系統中也稱為守護程序。他們繼續在後台運行並在沒有用戶干預的情況下完成工作。除了系統服務外,還添加了一些其他的第三方應用程序來啟動。在這個簡短的指南中,讓我們看看如何在 Linux 和類 Unix 系統上在啟動時查找和列出啟動服務。
列出 Linux 啟動時的啟動服務
搜索啟動服務列表的區別如下: init
系統。 系統化 主要新 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 系統上所有服務的列表(在系統啟動時啟用和禁用)。您可以通過查看上面輸出的狀態部分來確認這一點。啟動時啟動的服務標記為 效力,未啟動的服務被標記為 無效的.
僅列出 有效服務 在系統啟動時,運行:
$ 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
,運行以下命令列出所有服務:
$ 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 系統上 upstart
,運行以下命令列出所有啟動服務:
$ sudo initctl list
上面的命令顯示所有 會議 工作。
如果你想向我展示一切 系統 要工作,請運行:
$ sudo initctl --system list
要列出所有服務並在每個運行級別顯示它們的狀態,請運行:
$ sudo initctl list | awk '{ print $1 }' | xargs -n1 initctl show-config
要查看特定服務的狀態,請運行以下命令。
$ initctl show-config <service_name>
在 Linux 中禁用啟動服務
您在計算機上安裝的應用程序越多,系統啟動所需的時間就越長。 為了加快 Linux 系統的啟動時間,您需要找到並禁用不必要的服務。
例如,如果您不想要一個名為 unattended-upgrades.service
要在啟動時加載,您可以通過以下方式禁用它:
$ sudo systemctl disable --now unattended-upgrades.service
要檢查服務是否在啟動時啟用,請運行:
$ sudo systemctl is-enabled <service-name>
相關文件:
- 如何提高 Linux 上的應用程序啟動時間
Linux命令啟動Linux服務