Devuan a různé distribuce Linuxu bez systemd poskytují alternativní init systémy. runit patří mezi nejbarebones a nejlehčí. Malá kódová základna usnadňuje údržbu a také audit na chyby a bezpečnostní problémy. Je schopen běžet i na jiných Unicích jako *BSD, MacOSX atd. V tomto článku se budu zabývat základy runitu init schéma s Devuanem jako základem. Většina konceptů a příkazů by však měla být stejná pro ostatní distribuce. Podrobnější informace naleznete v odkazech na konci.
Pracovní mechanismus
Podle oficiální dokumentace runit je iniciační schéma se servisním dohledem. To znamená, že zvládá automatické spouštění služeb během bootování a také je sleduje a restartuje. V souladu s filozofií UNIX se runit skládá z různých malých nástrojů a binárních souborů (i když ne do té míry, aby byly nafouklé *ehm* systemd *ehm* ) pro interakci s ním a dalšími démony.
Stejně jako u většiny systémů init jádro načte první proces – /sbin/init
který poskytuje program runit-init(8). Poté se nahradí runitem(8). runit je to, co provádí spouštění, spouštění a vypínání systému, a to ve třech fázích:
- Fáze 1 :
Systém provádí jednorázové inicializační úlohy prostřednictvím/etc/runit/1
. Pokud tato fáze selže, dostaneme nouzový granát. - Fáze 2 :
runit se spustí/etc/runit/2
který zpracovává úrovně běhu prostřednictvím runvdir(8). Toto je fáze, ve které náš systém zůstává, když běží. V této fázi můžeme také zadat Ctrl+Alt+Delete požadavek na restart. - Fáze 3:
Pokud/etc/runit/2
vrátí se bez chyb, což se stane během zastavení nebo restartu systému, spustí se runit/etc/runit/3
. Úlohy vypnutí se provádějí ve fázi 3.
Úrovně běhu
Standardní instalace runitu má 2 úrovně běhu , default
a single
. Adresář úrovně běhu obsahuje symbolické odkazy na jiné adresáře služeb. Většina úloh se provádí a většina služeb se spouští v default
runlevel. Můžeme si však vytvořit vlastní úrovně běhu vytvořením nové složky v/etc/runit/runsvdir/
a symbolické propojení našich požadovaných služeb s touto úrovní běhu. Moje instalace Devuan má vytvořeny další dvě úrovně běhu.
Runit změní úrovně běhu přepnutím adresáře runsvdir
program je spuštěn. O to se stará runsvchdir
příkaz.
Chcete-li například přepnout na single
uživatelská úroveň běhu:
# runsvchdir single
Můžeme také požádat runit, aby se během spouštění spustil v určité úrovni běhu namísto default
. Můžeme tak učinit přidáním runitdir=name
parametr jádra. Je zřejmé, že úroveň běhu name
by měl existovat, tj. adresář musí být dostupný na /etc/runit/runsvdir
s tímto jménem.
Například pro přímé zavedení do režimu pro jednoho uživatele (tj. single
runlevel), můžeme připojit runitdir=single
na parametr jádra.
V GRUBu to můžeme udělat stisknutím e
při zvýraznění položky v nabídce zavaděče.
Stiskněte Ctrl+X
provede boot systému s danými parametry, čímž se efektivně dostaneme do režimu pro jednoho uživatele.
Správa služeb
Adresář služeb obsahuje soubory a nezbytné skripty pro správu démona. Adresáře služeb jsou umístěny v /etc/sv
adresář.
Tyto adresáře služeb musí být symbolicky propojeny s /etc/service
jinak runit
nebudou mít přístup.
Vytvoření symbolického odkazu v /etc/service
v podstatě enable
tak, aby se spustil při spouštění. Můžeme disable
službu vytvořením souboru s názvem down
uvnitř adresáře služeb.
Přestože má runit několik programů, obvykle potřebujeme pracovat pouze s sv
příkaz. Syntaxe je ekvivalentní systemd 's systemctl
příkaz.
Spuštění služby:
# sv start <service_name>
Zastavení:
# sv stop <service_name>
Restartování nebo opětovné načtení služby:
# sv restart <service_name>
Zkontrolujte stav služby:
# sv status <service_name>
Je zde také přepsání sv
příkaz v Rustu s názvem rsv
. Tím se však v tomto článku nebudu zabývat. Zkontrolujte prosím odkaz mezi odkazy níže.
Odkazy:
- Spustit domovskou stránku
- rsv
- Artix Wiki | Runit
- Void Linux | Služby a démoni – runit