如何在 Linux 启动时列出启动服务

默认情况下,系统启动时会自动启动一些重要的系统服务。 例如,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 系统中所有服务(在系统启动时启用和禁用)的列表。 您可以通过查看上述输出中的 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 发行版可能会使用 系统V 或者 暴发户 作为他们的默认初始化系统。

如果您的系统使用 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 中的应用程序启动时间

LinuxLinux 命令启动服务systemdSysVUpstart