6Jul
När ett Linux-system startar, går det in i sitt standard runlevel och kör startskrivningsskript som är associerade med det här runlevelet. Du kan också växla mellan körlängder - till exempel finns det ett runlevel utformat för återvinning och underhåll.
Traditionellt använde Linux System V-style init-skript - medan nya init-system slutligen kommer att föråldras traditionella runder, har de ännu inte. Till exempel använder Ubuntus Upstart-system fortfarande traditionella systemv-skript.
Vad är ett Runlevel?
När ett Linux-system startar, startar det init -processerna.init ansvarar för att starta de andra processerna på systemet. När du till exempel startar din Linux-dator startar kärnan init, och init kör startskript för att initiera hårdvaran, ta upp nätverk, starta det grafiska skrivbordet.
Det är emellertid inte bara en enda uppsättning av startskript init utför. Det finns flera körnivåer med egna startskript - till exempel kan ett runlevel föra upp nätverk och starta det grafiska skrivbordet, medan ett annat runlevel kan lämna nätverksfunktionen inaktiverad och hoppa över det grafiska skrivbordet. Det betyder att du kan släppa från "grafiskt skrivbordsläge" till "textkonsolläge utan nätverk" med ett enda kommando utan att manuellt starta och stoppa olika tjänster.
Mer specifikt kör init scriptsna i en specifik katalog som motsvarar runlevel. När du till exempel anger Runlevel 3 på Ubuntu kör init scriptsna i /etc/ rc3.d katalogen.
Åtminstone så här fungerar det med ett traditionellt System V init-system - Linux-distributioner börjar ersätta det gamla System V init-systemet. Medan Ubuntus Upstart för närvarande upprätthåller kompatibilitet med SysV init-skript, kommer det sannolikt att förändras i framtiden.
The Runlevels
Vissa runder är standard mellan Linux-distributioner, medan vissa runder varierar från distribution till distribution.
Följande runder är standard:
- 0 - Halt ( Stänger ner systemet.)
- 1 - Enkelt användarläge ( Systemet startar i superbrukerläge utan att starta daemoner eller nätverk. Perfekt för uppstart i en återställnings- eller diagnostikmiljö.)
- 6 - Reboot
Runlevels 2-5 varierar beroende på distribution. På Ubuntu och Debian är Runlevels 2-5 till exempel samma och ger ett fullständigt multi-användarläge med nätverk och grafisk inloggning. På Fedora och Red Hat tillhandahåller runlevel 2 flera användarlägen utan nätverk( endast konsollogg), runlevel 3 tillhandahåller fleranvändarläge med nätverk( endast konsollogg), runlevel 4 är oanvänd och runlevel 5 tillhandahåller fleranvändarläge mednätverk och grafisk inloggning.
Växla till en annan runlevel
Om du vill växla till ett annat körnivå medan systemet redan körs, använd följande kommando:
sudo telinit #
Ersätt # med numret på det runlevel du vill byta till. Omit sudo och kör kommandot som root om du kör en distribution som inte använder sudo.
Booting direkt till ett specifikt runlevel
Du kan välja ett runlevel för att starta från startlocket - Grub, till exempel. Vid starten av startprocessen, tryck på en knapp för att komma åt Grub, välj din startpost och tryck på e för att redigera den.
Du kan lägga single till slutet av Linux -raden för att komma in i single-user runlevel( Runlevel 1).(Tryck Ctrl + x för att starta efter.) Det här är detsamma som alternativet för återställningsläge i Grub.
Traditionellt kan du ange ett tal som en kernelparameter och du skulle starta till det här körnivån - till exempel med 3 istället för single för att starta till runlevel 3. Detta verkar dock inte fungera på de senaste versionernaav Ubuntu - Upstart verkar inte tillåta det. På samma sätt, hur du ändrar standard runlevel beror på din distribution.
Medan Ubuntus Upstart-demon emulerar SystemV init-systemet, kommer mycket av denna information att förändras i framtiden. Upstart är till exempel händelsebaserat - det kan stoppa och starta tjänster när händelser inträffar( till exempel kan en tjänst startas när en hårdvarubutik är ansluten till systemet och slutar när enheten tas bort.) Fedora har också en egen efterträdaretill init, systemd.