Ve výchozím nastavení se některé důležité systémové služby spouštějí automaticky při startu systému. Například služby NetworkManager a Firewalld budou automaticky spuštěny při spouštění systému. Spouštěcí služby jsou také známé jako démoni v operačních systémech Linux a Unix. Budou stále běžet na pozadí a dělat svou práci bez jakéhokoli zásahu uživatele. Kromě systémových služeb se do startu přidají i některé další aplikace třetích stran. V tomto stručném průvodci se podíváme, jak najít a uvést spouštěcí služby při spouštění v systémech Linux a Unix.
Vypsat seznam spouštěcích služeb při spouštění v Linuxu
Nalezení seznamu spouštěcích služeb se bude lišit v závislosti na init
Systém. Systemd je výchozí iniciační systém pro hlavní novější verze distribucí Linuxu.
Pokud vaše systémy běží s systemd
správce systému, můžete zobrazit seznam všech služeb pomocí následujícího příkazu:
$ sudo systemctl list-unit-files --type=service
Ukázkový výstup:
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.
Jak je uvedeno výše, tento příkaz zobrazuje seznam všech služeb (jak povolených, tak zakázaných při spouštění systému) ve vašem systému Linux. Můžete si to ověřit pohledem do sekce STATE ve výše uvedeném výstupu. Služby, které se spouštějí při spouštění, jsou označeny jako povolené a služby, které nejsou spuštěny, jsou označeny jako deaktivované .
Chcete-li uvést pouze povolené služby při spouštění systému spusťte:
$ sudo systemctl list-unit-files --type=service --state=enabled --all
Ukázkový výstup:
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.
Chcete-li zobrazit všechny zakázané služby při spouštění systému, spusťte:
$ sudo systemctl list-unit-files --type=service --state=disabled --all
Jak jsem již řekl, některé starší distribuce Linuxu mohou používat buď SysV nebo Počáteční jako jejich výchozí init systém.
Pokud váš systém používá sysv
, spusťte následující příkaz pro zobrazení seznamu všech služeb:
$ sudo service --status-all
Ukázkový výstup:
[ + ] 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
Zde se zobrazí +
označuje, že služba je spuštěna, a -
označuje zastavenou službu. Pokud vidíte ?
ve výstupu nelze určit stav služby (z nějakého důvodu).
Chcete-li zobrazit seznam všech služeb, které jsou povoleny při spouštění, spusťte:
$ sudo chkconfig --list
Tento příkaz zobrazí stav každé služby na každé úrovni spuštění . Ukázkový výstup výše uvedeného příkazu bude:
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
[...]
Ve výše uvedeném příkazu "on" znamená, že služba je spuštěna při bootování.
Můžete také zobrazit stav konkrétní služby na jiné úrovni spuštění, jak je uvedeno níže:
$ sudo chkconfig --list httpd
Pokud váš systém Linux používá upstart
, spusťte tento příkaz pro zobrazení seznamu všech spouštěcích služeb:
$ sudo initctl list
Výše uvedený příkaz zobrazí všechny relace pracovní místa.
Pokud chcete zobrazit celý Systém úlohy, spusťte:
$ sudo initctl --system list
Chcete-li vypsat všechny služby a zobrazit jejich stavy na každé úrovni spuštění, spusťte:
$ sudo initctl list | awk '{ print $1 }' | xargs -n1 initctl show-config
Chcete-li zobrazit stav konkrétní služby, spusťte tento příkaz:
$ initctl show-config <service_name>
Zakázat spouštěcí služby v Linuxu
Čím více aplikací nainstalujete do svého počítače, tím déle trvá spuštění systému. Chcete-li zlepšit dobu spouštění systému Linux, musíte najít nepotřebné služby a zakázat je.
Řekněme například, pokud nechcete službu s názvem unattended-upgrades.service
pro načtení při startu jej můžete zakázat příkazem:
$ sudo systemctl disable --now unattended-upgrades.service
Chcete-li zjistit, zda je služba povolena při spouštění, spusťte:
$ sudo systemctl is-enabled <service-name>
Související čtení:
- Jak zkrátit dobu spouštění aplikací v systému Linux