Hlavní navigace

Linux - druhý pohled do nitra

Michal Krause 15. 7. 1999

Před nedávnem jsme se seznámili s tím, co se vlastně v počítači odehrává, když se Linux startuje. Dnes na toto téma navážeme a podíváme se podrobněji na funkce programu init a formát souboru /etc/inittab.

V předchozím článku jsme se dostali až k fázi, kdy se spustí program init. Rovněž jsme si řekli, že chování tohoto programu určuje soubor /etc/inittab. Tento soubor je nesmírně důležitý a vřele doporučuji důkladně se seznámit s problematikou ještě než do něj začnete zasahovat. Rovněž zálohování není od věci. Na druhou stranu je třeba říci, že většina uživatelů nemusí tento soubor nijak upravovat, neboť často vystačí s tím, jak vypadá hned po instalaci.
Formát souboru je celkem jednoduchý. Každý povel se nachází na zvláštním řádku a má následující tvar:

id:runlevels:ac­tion:process

id je čtyřpísmený (nebo dvoupísmený, dle platformy) jednoznačný identifikátor povelu. Runlevels obsahuje výčet runlevelů (viz. minulý článek), pro něž se povel má vykonat. Action specifikuje akci, při níž se vykonává povel definovaný parametrem process. Nejčastěji používané hodnoty pro položku action jsou:

respawn – proces bude vždy znovu spuštěn, pakliže se ukončí. Typicky se používá například pro getty. Výhodou je, že init sleduje, zda se program neobnovuje příliš rychle a zabraňuje tak přetížení systému

wait – proces bude spuštěn jednou při vstupu do runlevelu a init počká na jeho dokončení

once – to samé jako wait, ale nečeká se na dokončení

boot – proces bude spuštěn jednou při bootu, runlevel je v tomto případě ignorován

bootwait – to samé jako boot, ale init čeká na dokončení

initdefault – definuje výchozí runlevel, který se použije při bootování. V případě, že neexistuje žádný povel tohoto typu, init bude požadovat zadání runlevelu na konzoli. Položka process je ignorována

sysinit – proces bude spuštěn jednou při bootu a to ještě před všemi povely typu boot (resp. bootwait)

ctrlaltdel – definuje povel, který bude vykonán při stisku kombinace kláves Ctrl+Alt+Delete (případně když init obdrží signál INT)

Existují i další hodnoty pro položku action, které však již nejsou tak časté. Kompletní seznam s popisem naleznete v manuálové stránce inittab(5).

Pakliže ještě zkonstatuji, že komentáře v souboru /etc/inittab začínají znakem #, měl by pro vás nyná být tento soubor srozumitelný. Běžný soubor pak může vypadat třeba takto:

id:3:initdefault:

si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6

ud::once:/sbin/update

ca::ctrlaltdel:/sbin/shutdown -t3 -r now

1:12345:respawn:/sbin/mingetty --noclear tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

x:5:respawn:/usr/bin/X11/xdm -nodaemon

Vidíme, že výchozí runlevel bude 3, při bootu se spustí skript /etc/rc.d/rc.sy­sinit, nastartuje se démon update, při stisku kláves Ctrl+Alt+Del se provede povel /sbin/shutdown, nastartuje se šest textových konzolí (povel mingetty, v případě ukončení se opět nahodí). Poslední řádek slouží pro runlevel 5, který je běžně využíván pro přímý start Xek. Program xdm umožňuje přihlášení do systému už v grafickém rozhraní, akce je opět respawn, tudíž se po ukončení Xek znovu spustí xdm.

Poslední nevysvětlenou částí v uvedeném příkladě jsou povely s id l0 až l6. Ty slouží ke spuštění startovacích skriptů podle zvoleného runlevelu. O tom, jak vlastně vypadají startovací skripty v Linuxu (potažmo v jiných un*xech) si ale povíme až příště.

Našli jste v článku chybu?
Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Podnikatel.cz: EET zvládneme, budou horší zákony

EET zvládneme, budou horší zákony

DigiZone.cz: ČRo rozšiřuje DAB do Berouna

ČRo rozšiřuje DAB do Berouna

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

DigiZone.cz: NG natáčí v Praze seriál o Einsteinovi

NG natáčí v Praze seriál o Einsteinovi

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU

Podnikatel.cz: Víme první výsledky doby odezvy #EET

Víme první výsledky doby odezvy #EET

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

120na80.cz: Rakovina oka. Jak ji poznáte?

Rakovina oka. Jak ji poznáte?

DigiZone.cz: ČRa DVB-T2 ověřeno: Hisense a Sencor

ČRa DVB-T2 ověřeno: Hisense a Sencor

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Vitalia.cz: Tesco: Chudá rodina si koupí levné polské kuře

Tesco: Chudá rodina si koupí levné polské kuře

Root.cz: Vypadl Google a rozbilo se toho hodně

Vypadl Google a rozbilo se toho hodně

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Vitalia.cz: 9 největších mýtů o mase

9 největších mýtů o mase

Podnikatel.cz: Na poslední chvíli šokuje vyjímkami v EET

Na poslední chvíli šokuje vyjímkami v EET