默认情况下,系统启动时会自动启动一些重要的系统服务。 例如,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 发行版可能使用 系统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 系统的启动时间,您需要找到不必要的服务并禁用它们。
说为 example如果你不想调用一个服务 unattended-upgrades.service
要在启动时加载,您可以使用以下命令禁用它:
$ sudo systemctl disable --now unattended-upgrades.service
要了解服务是否在启动时启用,请运行:
$ sudo systemctl is-enabled <service-name>
相关阅读:
- 如何在 Linux 中提高应用程序启动时间