Što su “Runlevels” na Linuxu?
Kada se sustav Linux pokrene, unosi svoj zadani runlevel i pokreće skripte za pokretanje povezane s tim runlevelom. Također možete prebacivati između runlevel-ova - na primjer, postoji runlevel dizajniran za operacije oporavka i održavanja.
Tradicionalno, Linux je koristio init skripte u stilu System V - dok će novi init sustavi vremenom zastarjeti tradicionalnim runlevel-ovima, ali još nisu. Na primjer, Ubuntuov Upstart sustav i dalje koristi tradicionalne System V skripte.
Što je Runlevel?
Kada se sustav Linux pokrene, pokreće ga u tome procesi. init je odgovoran za pokretanje ostalih procesa u sustavu. Na primjer, kada pokrenete vaše Linux računalo, kernel počinje init, a init izvršava skripte za pokretanje kako bi inicijalizirao vaš hardver, doveo do umrežavanja, pokrenuo vašu grafičku radnu površinu..
Međutim, ne postoji samo jedan skup pokretačkih skripti. Postoji više razina pokretanja s vlastitim pokretačkim skriptama - na primjer, jedan runlevel može dovesti do umrežavanja i pokretanja grafičke radne površine, dok drugi runlevel može ostaviti onemogućenu mrežu i preskočiti grafičku radnu površinu. To znači da možete ispustiti iz "grafičkog načina rada radne površine" u "tekstualni način rada konzole bez umrežavanja" s jednom naredbom, bez ručnog pokretanja i zaustavljanja različitih usluga.
Konkretnije, init pokreće skripte smještene u određenom direktoriju koji odgovara runlevelu. Na primjer, kada unesete runlevel 3 na Ubuntuu, init pokreće skripte smještene u direktoriju /etc/rc3.d.
Barem, to je način na koji radi s tradicionalnim System V init sustavom - Linux distribucije počinju zamjenjivati stari System V init sustav. Dok Ubuntu Upstart trenutno održava kompatibilnost sa SysV init skriptama, to će se vjerojatno promijeniti u budućnosti.
Razina rada
Neki runlevel-ovi su standardni među Linux distribucijama, dok se neki runlevel-ovi razlikuju od distribucije do distribucije.
Sljedeći nivoi su standardni:
- 0 - Zaustaviti (Isključuje sustav.)
- 1 - Jedan korisnički način (Sustav se pokreće u načinu rada superkorisnika bez pokretanja demona ili umrežavanja. Idealno za pokretanje sustava za oporavak ili dijagnostiku.)
- 6 - Ponovno podizanje sustava
Ravni 2-5 variraju ovisno o distribuciji. Na primjer, na Ubuntuu i Debianu, runlevels 2-5 su isti i pružaju potpuni višekorisnički način rada s umrežavanjem i grafičkom prijavom. Na Fedori i Red Hatu, runlevel 2 osigurava višekorisnički način rada bez umrežavanja (samo za prijavu na konzolu), runlevel 3 osigurava višekorisnički način rada s mrežom (samo za prijavu na konzolu), runlevel 4 je neiskorišten, a runlevel 5 omogućuje višekorisnički način rada umrežavanje i grafičko prijavljivanje.
Prebacivanje na drugu razinu pogona
Da biste se prebacili na drugi runlevel dok je sustav već pokrenut, koristite sljedeću naredbu:
sudo telinit #
Zamijenite # brojem na kojem se želite prebaciti. Izostavite sudo i pokrenite naredbu kao root ako imate distribuciju koja ne koristi sudo.
Dizanje izravno na određeni runlevel
Možete odabrati runlevel za dizanje s boot loader - Grub, na primjer. Na početku postupka podizanja pritisnite tipku da biste pristupili grubu, odaberite unos za pokretanje i pritisnite e da biste ga uredili.
Možete dodati singl do kraja Linux za unos jednog korisnika runlevel (runlevel 1). (Za pokretanje sustava pritisnite Ctrl + x.) Ovo je isto što i opcija oporavka u Grub.
Tradicionalno, možete navesti broj kao parametar kernela i pokrenuti se s tog runlevela - na primjer, pomoću 3 umjesto singl da se pokrene na runlevel 3. Međutim, čini se da to ne radi na najnovijim verzijama Ubuntua - čini se da to ne dopušta Upstart. Slično tome, način na koji mijenjate zadani runlevel ovisit će o vašoj distribuciji.
Dok Ubuntuov Upstart demon još uvijek emulira SystemV init sustav, veći dio tih informacija će se promijeniti u budućnosti. Na primjer, Upstart je zasnovan na događajima - može zaustaviti i pokrenuti usluge kada se dogode događaji (na primjer, usluga može početi kada je hardverski uređaj povezan s sustavom i zaustavlja se kada se uređaj ukloni.) Fedora također ima svog nasljednika init, systemd.