Hva er Runlevels på Linux?
Når et Linux-system starter, går det inn i standard runlevel og kjører oppstartskriptene knyttet til det runlevel. Du kan også bytte mellom runleveller - for eksempel er det et runlevel designet for gjenoppretting og vedlikehold.
Tradisjonelt brukte Linux System V-style init-skript - mens nye init-systemer til slutt vil forfalle tradisjonelle runleveller, har de ennå ikke. For eksempel bruker Ubuntus Upstart-system fortsatt tradisjonelle systemv-stilskript.
Hva er en Runlevel?
Når et Linux-system starter, lanserer det i det prosesser. init er ansvarlig for å lansere de andre prosessene på systemet. Når du for eksempel starter din Linux-datamaskin, starter kjernen init, og init kjører oppstartskriptene for å initialisere maskinvaren, hente nettverk, starte grafisk skrivebordet.
Det er imidlertid ikke bare ett enkelt sett med oppstartsskript init utført. Det er flere løpnivåer med egne oppstartskript - for eksempel kan ett runlevel opprette nettverk og starte det grafiske skrivebordet, mens et annet runlevel kan la nettverk være deaktivert og hoppe over det grafiske skrivebordet. Dette betyr at du kan slippe fra "grafisk skrivebordsmodus" til "tekstkonsollmodus uten nettverk" med en enkelt kommando uten å starte og stoppe forskjellige tjenester manuelt..
Mer spesifikt kjører init skriptene i en bestemt katalog som tilsvarer runlevel. For eksempel, når du angir runlevel 3 på Ubuntu, kjører init skriptene som ligger i /etc/rc3.d katalogen.
I hvert fall, slik fungerer det med et tradisjonelt System V init-system - Linux-distribusjoner begynner å erstatte det gamle System V init-systemet. Mens Ubuntus Upstart for tiden opprettholder kompatibilitet med SysV init-skript, vil dette trolig endres i fremtiden..
The Runlevels
Noen runder er standard mellom Linux-distribusjoner, mens enkelte runleveler varierer fra distribusjon til distribusjon.
Følgende runleveler er standard:
- 0 - Halt (Slår av systemet.)
- 1 - Enkel brukermodus (Systemet starter i superbrukermodus uten å starte daemoner eller nettverk. Ideelt for oppstart i et gjenopprettings- eller diagnostikkmiljø.)
- 6 - Reboot
Runlevels 2-5 varierer avhengig av distribusjon. For eksempel, på Ubuntu og Debian er runde 2-5 de samme og gir en full multifunksjonsmodus med nettverk og grafisk innlogging. På Fedora og Red Hat tilbyr runlevel 2 multifunksjonsmodus uten nettverk (kun konsolllogging), runlevel 3 gir flerbrukermodus med nettverk (kun konsolllogging), runlevel 4 er ubrukt og runlevel 5 gir flerbrukermodus med nettverk og grafisk innlogging.
Bytter til en annen runlevel
For å bytte til et annet runlevel mens systemet allerede kjører, bruk følgende kommando:
sudo telinit #
Erstatt # med nummeret på runlevelet du vil bytte til. Omit sudo og kjør kommandoen som root hvis du kjører en distribusjon som ikke bruker sudo.
Oppstart direkte til en bestemt runlevel
Du kan velge et runlevel for å starte opp fra boot loader - Grub, for eksempel. Ved starten av oppstartsprosessen, trykk på en tast for å få tilgang til Grub, velg oppstartsoppføringen, og trykk e for å redigere den.
Du kan legge til enkelt til slutten av linux linje for å gå inn i single-user runlevel (runlevel 1). (Trykk Ctrl + x for å starte etter.) Dette er det samme som alternativet for gjenopprettingsmodus i Grub.
Tradisjonelt kan du spesifisere et tall som en kjerneparameter, og du vil starte opp til det runlevelet - for eksempel ved hjelp av 3 i stedet for enkelt å starte opp til runlevel 3. Dette ser imidlertid ikke ut til å fungere på de nyeste versjonene av Ubuntu - Upstart ser ikke ut til å tillate det. På samme måte vil hvordan du endrer standard runlevel, avhenge av distribusjonen din.
Mens Ubuntus Upstart-demon fortsatt emulerer SystemV init-systemet, vil mye av denne informasjonen endres i fremtiden. For eksempel er Upstart event-basert - det kan stoppe og starte tjenester når hendelser oppstår (for eksempel kan en tjeneste starte når en maskinvareenhet er koblet til systemet og stoppe når enheten er fjernet.) Fedora har også sin egen etterfølger til init, systemd.