Správa linuxových služeb
Nástroje systemd:
- busctl
- Vytahuje informace ze sběrnice D-Bus. Např. parametr
--show-machine
ukáže také název podadresáře, v adreáři/var/log/journal
, kde je uložen žurnál, se kterým pracují služby (services) a nástroj journalctl. Jeho prostřednictvím lze ale také přes sběrnici D-Bus se službami komunikovat. - homectl
- ?
- hostnamectl
- Vypisuje informace o systému.
- journalctl
- Pracuje s logy.
- localectl
- Nastavení klávesnice a locales.
- loginctl
- Obsluhuje login.
- machinectl
- Nástroj pro práci s virtuálními stroji spustšnými přes systemd-nspwan.
- networkctl
- Síťová rozhraní
- portablectl
- ?
- systemctl
- Obsluhuje spouštění služeb
- timedatectl
- Spravuje systémový čas
- sysctl
- ?
- udevadm
- ?
Výpis všech služeb
systemctl
Kde jsou spuštěcí skripty?
Sysv-rc (spouštěcí skripty)
/etc/init.d/ /etc/rc.d/ /etc/rc.<runlevel> - symlinky
Systemd (unity)
/lib/systemd/system/*.service /etc/systemd/system/*.service
Načtení nové, nebo upravené verze unity..
systemctl daemon-reload
OpenRC na Gentoo (rc skripty)
/etc/init.d/
Spuštění/Zastavení služby
Service
service služba {start|stop}
Systemd
systemctl {start|stop} služba.service
Sysv-rc (stejně i OpenRC na Gentoo)
/etc/init.d/služba {start|stop}
Zjištění stavu služby
Systemd
systemctl status služba.status
Sysv-rc
/etc/init.d/služba status
Service
service služba status
OpenRC na Gentoo
rc-status
Aktivace/Deaktivace služby
Systemd
systemctl {enable|disable} služba.service
Sysv-rc
update-rc.d služba {enable|disable}
Chkconfig
chkconfig služba {on|off}
OpenRC na Gentoo
rc-update {add|del} služba [boot|default|sysinit]
Kontrola, zda-li je služba aktivovaná, nebo ne
Systemd
systemctl is-enabled služba.service; echo $?
0 - služba je akvivována 1 - služba je deaktivovaná
Chkconfig
chkconfig služba
Runlevel
Runlevel určuje soubor s příponou .target
Aktuální runlevel vypíše příkaz
systemctl list-units --type=target
Služby pro příslušný runlevel jsou v
/rtc/systemd/system/*.wants/služba.service
Jak změnit runlevel
Alternativa pro..
init <runlevel>
případně..
telinit <runlevel>
0 - poweroff.target (symlink runlevel0.target) - zastavit systém 1 - rescue.target (symlink runlevel1.target) - single user mode 2 - multi-user.target - víceuživatelská úroveň bez grafiky 3 - multi-user.target (symlink runlevel3.target) 4 5 - graphical.target (symlink runlevel5.target) 6 - reboot.target - restart emergency - emergency.target - Bezpečný shell
Při spouštění přes GRUB lze zadat úroveň suštění přes parametr..
systemd.unit=rescue
systém najede stejně, jako by byl zadán parametr
single
Přepnutí na runlevel 3
systemctl isolate multi-user.target
Přepnutí na runlevel 3 (alternativa pro init 5)
systemctl isolate graphical.target
Jak to má Debian?
Jak změnit výchozí runlevel?
Tím, že symlink /etc/systemd/system/default.target
povede na jiný target
Vypnutí
poweroff
ale stejně tak lze použít..
halt -p
nebo
init 0
nebo
shutdown -P now
Jaký má mít efekt..
- start - spustit
- stop - zastavit
- restart - nejprve se použije stop a potom start
- reload - pokud to aplikace podporuje, tak se pouze načte nová verze konfiguračního souboru
- condrestart - restartuje službu pouze pokud je spuštěná
- status - vypíše stav zda služba běží, nebo ne
Unity versus init skripty
Systemd načte init skript jako by to byly služby..
Pro jméno služby použije jméno, které poskytuje init skript v parametru Provides
V popisu služeb příkazem systemctl se u těchto služeb objeví LSB:
a obsah parametru Short-Description
Pokud existuje pro službu unita, tak se LSB služba při startu nepoužije!!!