Skip to content
Kruno Golubić
Go back

Linux runlevels - init daemon i njegova upotreba

Kruno Golubić

Napomena: Ovaj članak izvorno je objavljen na portalu Sistemac dana 29. prosinca 2011.

Kada govorimo o podjeli Linux distribucija, a vezano uz runlevele, možemo ih podijeliti na one koje koriste BSD-style ili SysV-style shemu za definiranje pojedinog runlevela. Razlike postoje i u daemonu koji se koristi za rad s runlevelima. Veliki broj distribucija koristi init daemon, no to nije jedini način za inicijalizaciju sustava. Tako primjerice Ubuntu koristi upstart, dok Fedora koristi systemd kao zadani način inicijalizacije sustava. Mi se u ovom članku nećemo baviti usporedbama različitih inicijalizacijskih sustava već ćemo pobliže opisati neke od karakteristika init daemona.

Samu inicijalizaciju operacijskog sustava definira daemon pod nazivom init koji se “podiže” nakon učitavanja jezgre (kernel) pa stoga najčešće ima PID (process id) 1. Pozivanje init daemona je zadnji korak kernel boot sekvence.

Prikaz init daemona i trenutnog runlevela u terminalnom sučelju

U ovom je slučaju vidljivo (init [3]) da se sustav nalazi u runlevelu 3 nakon što je podizanje sustava završilo.

Standardni runleveli

Kod većine Linux distribucija može se susresti sljedećih sedam runlevela:

RunlevelOpis
0Halt the system
1Single-user mode (for special administration)
2Local Multiuser with Networking but without network service (like NFS)
3Full Multiuser with Networking
4Not Used
5Full Multiuser with Networking and X Windows (GUI)
6Reboot

Runleveli od 7 do 9 također mogu postojati, ali nisu dokumentirani jer se ne koriste kod tradicionalnih Unix operacijskih sustava. Postoje još i dva dodatna runlevela — S i s — koji su prvenstveno namijenjeni upotrebi unutar skripti koje se izvršavaju po ulasku u runlevel 1.

Bitno je napomenuti da između različitih Linux distribucija može doći do odstupanja u pojedinom runlevelu u odnosu na gore navedeno. Ono što bi kod svih distribucija trebalo biti jednako jesu runlevel 0, 1 i 6.

Konfiguracijska datoteka /etc/inittab

Konfiguracijska datoteka koja određuje što se događa u kojem runlevelu je /etc/inittab. Između ostalog tu se određuje koji je zadani runlevel. Linux distribucija Slackware ima pretpostavljene (default) postavke kao što je prikazano na sljedećoj slici. Iz te je slike vidljivo je da je pretpostavljeni runlevel 3.

Sadržaj datoteke /etc/inittab na Slackware distribuciji s prikazom zadanog runlevela

Da kojim slučajem unutar datoteke inittab nije navedena vrijednost varijable initdefault, prilikom podizanja sustava bilo bi potrebno ručno upisati u sistemsku konzolu koji runlevel želimo.

Vezano uz Slackware, bitno je napomenuti da se za razliku od nekih drugih Linux distribucija koje datoteke vezane uz init proces drže pohranjene u direktoriju /etc/init.d, kod Slackware distribucije one nalaze u mapi /etc/rc.d.

Inicijalizacijske skripte

Nakon što se prilikom podizanja sustava inicira pokretanje init daemona, on pokreće skriptu /etc/rc.d/rc.S. Ta skripta je zadužena za omogućavanje virtualne memorije, inicijalizaciju uređaja, učitavanje modula u kernel i sl. Nakon te početne inicijalizacije sustav ide u neki od runlevela (ovisno o konfiguraciji). Svaki od runlevela prilikom svoje inicijalizacije pokreće određene skripte.

Pregled rc skripti koje se pokreću pri inicijalizaciji pojedinog runlevela

Sadržaj rc skripte za runlevel 0 i runlevel 6 s prikazom uvjetnog izvođenja naredbi

Prebacivanje između runlevela

Pomoću init daemona možemo se prebaciti u pojedini runlevel. Da bismo se prebacili u pojedini runlevel, potrebno je zadati naredbu init iza koje se navede broj runlevela:

init 1

Primjer prebacivanja iz runlevela 3 u runlevel 1 pomoću init naredbe

Prikaz sadašnjeg i prethodnog runlevela mogu se dobiti pomoću dvije naredbe:

runlevel
who -r

Ispis naredbi runlevel i who -r s prikazom trenutnog i prethodnog runlevela

Kod naredbe runlevel prva brojka označava prethodni, dok druga označava trenutni runlevel.

Dodatni resursi


Share this post on:

Previous Post
Pencil - jednostavan alat za izradu prototipova i skica web stranica ili aplikacija
Next Post
Video upute za rad s datotekama u GSS-u