Správa linuxových služeb: Porovnání verzí
Bez shrnutí editace |
mBez shrnutí editace |
||
(Není zobrazena jedna mezilehlá verze od stejného uživatele.) | |||
Řádek 1: | Řádek 1: | ||
{{Poznámka|1= | |||
První aplikace, kterou spustí jádro po zavedení je systémový ''init'' (''init system'') | |||
Historicky linuxové distribuce vyšly z unixového systému ''System V'' (zkráceně '''SysV'''), který vyvíjela fa. AT&T během 70. a 80. let. Převzaly z něj i způsob spouštění služeb – '''sysvinit''', který je založen na '''sekvenčním''' spouštění tzv. ''init'' skriptů a úrovních běhu (''runlevels''). | |||
Vyvíjely se však i jiné unixové systémy. Na univerzitě v kalifornském Berkeley, paralelně vznikal systém BSD (Berlekey Software Distribution), a v jeho rámci byl vyvinut vlastní systém spouštění služeb, rovněž založený na shellových skriptech, který spouští tzv. ''démony'' (proto je také symbolem BSD malý ďáblík), které pak dál v průběhu zavádění už spolu komunikují samostatně. Tento systém, zvaný '''runit''' převzaly i některé linuxové distribuce, resp. jejich ''deriváty''<ref> | |||
''derivát'' – odvozenina | |||
</ref>, které vznikly po roce 2004, kdy byl vyšel první veřejný ''release''. Jednou z prvních bylo Gentoo, linuxová distribuce existující od roku 2002. Původně byl u ní veškerý software kompilovaný na míru ''on-the-fly'' z veřejných zdrojových kódů<ref> | |||
V létě 2022 od ''portage'' 3.0.31 používá tato distribuce také binární instalační balíky. | |||
</ref>, takže si mohl během sestavení systému každý uživatel zvolit, jaký '''init''' pro svůj systém použije. | |||
Jeho vývojáři pak začali od roku 2007 vyvíjet '''openrc''', což byla původně nadstavba, která měla zastřešit jak '''sysvinit''', tak '''runit''', aby z uživatelského hlediska sjednotili spouštění služeb. Kromě Gentoo používá '''openrc'' také Devuan (odvozený od Debianu verze 3.1.0), aj. | |||
S nástupem mobilních aplikací se zcela změnily nároky spojené se spouštěním služeb a bylo potřeba vyvinout nové řešení, které by postupně nahradilo '''sysvinit''', založený na shellových skriptech a systémem binárních aplikací, pracujících s konfiguračnímu soubory. A tak začal v rámci distribuce Red, Hat od roku 2010, tým vývojářů vyvíjet '''systemd'''. | |||
V té době již existovala tato wiki a následující stránka vznikla coby stručná referenční příručka základních systémových operací, protože v rámci systémů na DCE je možné narazit na všechny zmíněné init systémy.}} | |||
Od Debianu verze 12 (vydaného v roce 2023) je výchozím init systémem již '''systemd''': | |||
; busctl : Vytahuje informace ze sběrnice D-Bus. Např. parametr <code>--show-machine</code> ukáže také název podadresáře, v adreáři <code>/var/log/journal</code>, 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. | ; busctl : Vytahuje informace ze sběrnice D-Bus. Např. parametr <code>--show-machine</code> ukáže také název podadresáře, v adreáři <code>/var/log/journal</code>, 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 : ? | ; homectl : ? | ||
Řádek 10: | Řádek 26: | ||
; portablectl : ? | ; portablectl : ? | ||
; systemctl : Obsluhuje spouštění služeb | ; systemctl : Obsluhuje spouštění služeb | ||
; timedatectl : Spravuje systémový čas | ; timedatectl : Spravuje systémový čas. S atributem <code>status</code> vypíše aktuální konfiguraci. | ||
; sysctl : ? | ; sysctl : ? |
Aktuální verze z 19. 4. 2024, 11:36
První aplikace, kterou spustí jádro po zavedení je systémový init (init system)
Historicky linuxové distribuce vyšly z unixového systému System V (zkráceně SysV), který vyvíjela fa. AT&T během 70. a 80. let. Převzaly z něj i způsob spouštění služeb – sysvinit, který je založen na sekvenčním spouštění tzv. init skriptů a úrovních běhu (runlevels). Vyvíjely se však i jiné unixové systémy. Na univerzitě v kalifornském Berkeley, paralelně vznikal systém BSD (Berlekey Software Distribution), a v jeho rámci byl vyvinut vlastní systém spouštění služeb, rovněž založený na shellových skriptech, který spouští tzv. démony (proto je také symbolem BSD malý ďáblík), které pak dál v průběhu zavádění už spolu komunikují samostatně. Tento systém, zvaný runit převzaly i některé linuxové distribuce, resp. jejich deriváty[1], které vznikly po roce 2004, kdy byl vyšel první veřejný release. Jednou z prvních bylo Gentoo, linuxová distribuce existující od roku 2002. Původně byl u ní veškerý software kompilovaný na míru on-the-fly z veřejných zdrojových kódů[2], takže si mohl během sestavení systému každý uživatel zvolit, jaký init pro svůj systém použije. Jeho vývojáři pak začali od roku 2007 vyvíjet openrc', což byla původně nadstavba, která měla zastřešit jak sysvinit, tak runit, aby z uživatelského hlediska sjednotili spouštění služeb. Kromě Gentoo používá openrc také Devuan (odvozený od Debianu verze 3.1.0), aj. S nástupem mobilních aplikací se zcela změnily nároky spojené se spouštěním služeb a bylo potřeba vyvinout nové řešení, které by postupně nahradilo sysvinit, založený na shellových skriptech a systémem binárních aplikací, pracujících s konfiguračnímu soubory. A tak začal v rámci distribuce Red, Hat od roku 2010, tým vývojářů vyvíjet systemd. V té době již existovala tato wiki a následující stránka vznikla coby stručná referenční příručka základních systémových operací, protože v rámci systémů na DCE je možné narazit na všechny zmíněné init systémy. |
Od Debianu verze 12 (vydaného v roce 2023) je výchozím init systémem již 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. S atributem
status
vypíše aktuální konfiguraci.
- 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!!!