V čom sa líši program Upstart?
Spoločnosť Upstart má model spustenia akejkoľvek dostupnej úlohy, keď k udalosti dôjde. Porovnajte to so systémom systemd, ktorý spúšťa procesy, na ktorých sú spustené všetky ostatné systémy. Hlavný rozdiel je v tom, že Upstart čaká na udalosti a systemd koordinuje závislosti. Oba systémy môžu spúšťať bežné skripty a obidva sa snažia spustiť paralelne. Pretože rozdiely sú také malé, je možné skripty Upstart zvyčajne volať iba pomocou súboru systémovej služby. Môžu tiež spustiť nezmenené súbory systemV. V skutočnosti obaja predvolene hľadajú starú štruktúru súborov systemV. Veľký rozdiel je v tom, že program Upstart vyhľadáva definované udalosti, ktoré by spustili čokoľvek. Ak si chcete pridať vlastnú službu, musíte zistiť, v akom kontexte svoju službu potrebujete. Zvyčajne je to jednoduché, pretože budete chcieť niečo, čo beží napríklad na pracovnej ploche. Pracovná plocha začína úrovňou udalostí 5, takže ju nastavíte vo svojom skripte. Pre systemd je to naopak grafický cieľ. Na začiatku máte k dispozícii aj ďalšie udalosti, ktoré môžete použiť, ako napríklad montáž, pripojenie a požiadavka na klávesnicu. Tie sú riešené systémovo cez zásuvky a dbus.
Ako migrujete skripty?
Všetky skripty Upstart máte v priečinku / etc / init, ich názvy sú názov úlohy s príponou „conf“. Skripty nie sú spustiteľné, iba ukazujú na jeden alebo viac spustiteľných súborov, ktoré by sa mali spustiť. V ľubovoľných skriptoch programu Upstart ste určili, na ktorú udalosť sa má skript spustiť a kedy sa má zastaviť. Mali by ste mať aj záznamy pred spustením a po zastavení. Tie pripravia prostredie a po vykonaní vyčistia. Ukážkový skript je uvedený nižšie
popis "Jednoduchý skript"štart na úrovni behu [2345]
zastaviť na úrovni behu [06]
respawn
env SCRIPT_ENV_VAR = '/ cesta / k / súboru.konfigurácia '
chdir / cesta / do / skript /
exec bash skript.š
Vyhlásenie „exec“ hovorí, čo sa stane, keď ho spustíte manuálne. Direktívy start a stop definujú, kedy sa skript spustí automaticky. Ako vidíte, môžete tiež nastaviť adresár, v ktorom bude bežať. Program Naštartovaný má mnoho ďalších aspektov, mali by ste sa však naučiť migrovať.
Aby tento skript fungoval v systéme systemd, musíte vytvoriť súbor služieb.
Jednotka]Popis = Jednoduchý skript
[Služba]
Prostredie = SCRIPT_ENV_VAR = / cesta / k / súboru.konfigur
WorkingDirectory = / cesta / do / skript
ExecStart = / usr / bin / bash skript.š
Reštart = vždy
[Inštalácia]
WantedBy = viac používateľov.cieľ
Tu vidíte, že sa stávajú rovnaké veci, ale s inými kľúčovými slovami. Formát je jednoduchý a k veci. Namiesto toho, aby ste mali úroveň behu, ukazujete na to, na ktorý cieľ chce váš skript. Toto zdôrazňuje, že systemd je predovšetkým o závislosti a východiskách pre konkrétne prostredie. Upozorňujeme, že ExecStart ukazuje na globálnu cestu, nikdy nepoužíva lokálnu cestu.
Kde to vyniká?
Upstart bol navrhnutý pre paralelné správanie, ale bol navrhnutý aj ako malý. Ak to kdekoľvek nájdete, bude to vo vstavaných systémoch a ChromeOS. Áno, ChromeOS to mal. Dôvod je ten, že bol postavený na vrchole systému Ubuntu od začiatku, v čase, keď bol pôvodný počiatočný systém Ubuntu zavedený. ChromeOS odvtedy prešiel na používanie Gentoo ako svojej základne.
Záver
Upstart je zaujímavá téma, ale hlavne historická. Možno ho budete potrebovať, iba ak narazíte na staré systémy. Najbežnejšou alternatívou v systéme Linux je teraz systemd. Ak máte výhrady k systému systemd, mali by ste sa poobzerať po iných minimálnych systémoch. Jedna zaujímavá je bezcitná, hriešna. Podporuje tri signály a musíte preň sami napísať všetky skripty alebo upraviť skripty od niekoho iného. Môže to byť zaujímavé cvičenie, ale je užitočné, iba ak pracujete na veľmi minimálnom a špecializovanom systéme.