loader

Ce sunt "Runlevels" pe Linux?

Anonim

Când un sistem Linux se încarcă, acesta intră în nivelul implicit de execuție și execută scripturile de pornire asociate acelei runlevel. De asemenea, puteți comuta între nivelurile de execuție - de exemplu, există un nivel de execuție proiectat pentru operații de recuperare și întreținere.

În mod tradițional, Linux a folosit scripturi init în stilul sistemului V - în timp ce noile sisteme init vor depăși în cele din urmă rundele tradiționale, dar nu au încă. De exemplu, sistemul Upstart al Ubuntu folosește în continuare scripturi tradiționale de sistem V.

Ce este Runlevel?

Atunci când un sistem Linux boots, lansează procesele init . init este responsabil pentru lansarea celorlalte procese din sistem. De exemplu, atunci când porniți computerul Linux, kernelul pornește init și init execută scripturile de pornire pentru a inițializa hardware-ul, pentru a aduce în rețea, pentru a porni desktop-ul dvs. grafic.

Cu toate acestea, nu există doar un singur set de script-uri de pornire init execută. Există mai multe nivele de rulare cu propriile scripturi de pornire - de exemplu, un nivel de execuție poate aduce rețele și poate lansa desktopul grafic, în timp ce un alt nivel de execuție poate lăsa rețea dezactivată și poate sări peste desktopul grafic. Aceasta înseamnă că puteți să scăpați de la "modul grafic desktop" la "modul de consolă text fără rețea" cu o singură comandă, fără a porni și opri diferite servicii diferite.

Mai precis, init rulează scripturile situate într-un director specific care corespunde nivelului de execuție. De exemplu, atunci când intrați pe nivelul 3 de pe Ubuntu, init rulează scripturile din directorul /etc/rc3.d.

Cel puțin, așa funcționează sistemul tradițional System V init - distribuțiile Linux încep să înlocuiască vechiul sistem System V init. În timp ce Ubuntu's Upstart păstrează în prezent compatibilitatea cu script-urile init SysV, acest lucru este probabil să se schimbe în viitor.

Nivelurile de rulare

Unele runlevels sunt standard între distribuțiile Linux, în timp ce unele runlevels variază de la distribuție la distribuție.

Următoarele runlele sunt standard:

  • 0 - Oprire (oprește sistemul.)
  • 1 - Mod unic de utilizator (Sistemul se învârte în modul superuser fără a porni daemoane sau de rețea. Ideal pentru a porni într-un mediu de recuperare sau diagnosticare.)
  • 6 - Reporniți

Nivelurile de rulare 2-5 variază în funcție de distribuție. De exemplu, pe Ubuntu și Debian, runlelele 2-5 sunt aceleași și oferă un mod multiplu cu utilizatori în rețea și conectare grafică. Pe Fedora și Red Hat, runlevel 2 oferă un mod de utilizare multiplu fără rețea (consola numai pentru autentificare), runlevel 3 oferă modul multi-user cu rețea (consola numai login), runlevel 4 este neutilizată și runlevel 5 oferă modul multi-user cu crearea de rețele și conectarea grafică.

Trecerea la un nivel diferit de execuție

Pentru a comuta la un nivel de execuție diferit în timp ce sistemul deja rulează, utilizați următoarea comandă:

sudo telinit #

Înlocuiți # cu numărul de nivel la care doriți să comutați. Omiteți sudo și executați comanda ca root dacă rulați o distribuție care nu utilizează sudo.

Încărcarea directă la un anumit nivel de execuție

Puteți selecta un nivel de execuție pentru a porni din încărcătorul de încărcare - Grub, de exemplu. La începutul procesului de încărcare, apăsați o tastă pentru a accesa Grub, selectați intrarea de pornire și apăsați e pentru ao edita.

Puteți adăuga un singur la sfârșitul liniei linux pentru a intra în nivelul de execuție pentru un singur utilizator (nivelul de execuție 1). (Apăsați Ctrl + x pentru a porni după.) Aceasta este aceeași cu opțiunea modului de recuperare din Grub.

În mod tradițional, ați putea specifica un număr ca parametru kernel și ați porni la acel nivel de execuție - de exemplu, folosind 3 în loc de un singur pentru a boot la nivelul de execuție 3. Cu toate acestea, acest lucru nu pare să funcționeze pe cele mai recente versiuni ale Ubuntu - Începutul nu pare să permită acest lucru. În mod similar, modul în care modificați nivelul de execuție implicit va depinde de distribuția dvs.


În timp ce daemonul Upstart de la Ubuntu încă emite sistemul SystemV init, o mare parte din aceste informații se vor schimba în viitor. De exemplu, Upstart se bazează pe evenimente - se poate opri și porni serviciile atunci când au loc evenimente (de exemplu, un serviciu ar putea începe când un dispozitiv hardware este conectat la sistem și oprește când dispozitivul este eliminat.) Fedora are, de asemenea, propriul succesor la init, sistem.