如何在 Linux 啟動中列出啟動服務-LinuxTechBlog


默認情況下,一些關鍵的系統服務會在系統啟動時自動啟動。例如,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.
列出所有使用 systemd 的 Linux 服務

如上所述,此命令顯示 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