默認情況下,一些關鍵的系統服務會在系統啟動時自動啟動。例如,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 命令啟動服務 systemdSysVUpstart