Linux - druhý pohled do nitra
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:action: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.sysinit, 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ě.
Související odkazy
Školení: SQL pro začátečníky
Kdo nezná jazyk SQL jako kdyby nebyl. Tak lze stručně charakterizovat dnešní význam SQL v IT. Pokud se chcete naučit tento jazyk, tak navštivte naše školení SQL. Školení je určené začátečníkům, a proto se začíná od skutečných základů.
Kromě samotného SQL se účastíci školení seznámí i se základy PostgreSQL, což je databáze, která se díky své shodě se standardem ANSI SQL a komfortem, který poskutuje svým uživatelům, zvlášť hodí pro výuku SQL.
Podrobnější informace a přihláška
Přehled názorů
Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

