Een runlevel is een vooraf gedefinieerde operationele status van een UNIX- of Linux-systeem dat bepaalt welke services en processen beschikbaar zijn na het opstarten.

Wat is Runlevel?
Een runlevel is een concept in UNIX en Linux besturingssystemen die een specifieke toestand van de machine definieert door te bepalen welke processen, services en systeembronnen actief zijn. Het fungeert als een raamwerk voor het regelen van het opstarten en afsluiten van het systeem, waardoor beheerders Om de omgeving te beheren volgens operationele behoeften. Elk runlevel komt overeen met een specifieke modus, zoals systeemonderhoud, tekstgebaseerde multi-userbediening of volledige beschikbaarheid van de grafische interface.
Wanneer het systeem opstart, wordt een standaard runlevel geactiveerd dat in de configuratie is gedefinieerd. Het init-proces zorgt ervoor dat de juiste set services op basis van dat runlevel wordt gestart of gestopt. Door het runlevel te wijzigen, kunnen beheerders het systeem snel aanpassen aan verschillende taken, zoals probleemoplossing in de single-user-modus, werken zonder netwerkfunctionaliteit vanwege beveiliging, of het inschakelen van volledige netwerk- en grafische services voor regulier gebruik. Dit mechanisme biedt een gestandaardiseerde en efficiรซnte manier om het systeemgedrag te beheren zonder dat handmatige tussenkomst voor elke afzonderlijke service vereist is.
Verschillende Linux-runlevels
Hier is een gestructureerde tabel met de traditionele Linux SysV-runlevels en hun doelen:
| Runlevel | Beschrijving | Typisch gebruiksvoorbeeld |
| 0 | Halt (afsluiten) | Schakelt het systeem veilig uit. |
| 1 | Enkelvoudige gebruikersmodus | Onderhouds- of noodmodus met Root toegang alleen geen netwerk. |
| 2 | Multi-user-modus zonder netwerk | Biedt meerdere gebruikersaanmeldingen, maar schakelt netwerkservices uit (verschilt per distributie). |
| 3 | Volledige multi-usermodus met netwerkmogelijkheden | Standaardtekstgebaseerde, niet-grafische modus met alle services en netwerken ingeschakeld. |
| 4 | Ongedefinieerd / door de gebruiker definieerbaar | Zelden gebruikt; beschikbaar voor aangepaste configuratie. |
| 5 | Multi-usermodus met netwerkmogelijkheden en GUI | Start de grafische desktopomgeving op met volledige netwerkmogelijkheden. |
| 6 | Reboot | Start het systeem veilig opnieuw op. |
Waarvoor wordt Runlevel gebruikt?
Runlevels worden gebruikt om de operationele status van een Linux of UNIX-systeem door te definiรซren welke services, processen en systeembronnen op een bepaald moment actief moeten zijn. Hiermee kunnen beheerders het gedrag van het systeem beheren tijdens het opstarten, afsluiten of overgangen tussen verschillende bedrijfsmodi.
Een systeem kan bijvoorbeeld in de modus voor รฉรฉn gebruiker worden gezet voor het oplossen van problemen, en in de modus voor meerdere gebruikers voor normaal gebruik. server bewerkingen, of opgestart in een grafische interface voor desktopgebruik. Door het runlevel in te stellen of te wijzigen, kunnen beheerders snel groepen services in- of uitschakelen, systeembronnen besparen, onderhoudstaken uitvoeren of ervoor zorgen dat de machine in de meest geschikte configuratie voor de beoogde rol draait. Deze gestructureerde aanpak helpt consistentie, beveiliging en efficiรซntie in verschillende omgevingen te behouden.
Hoe controleer ik het runlevel?
U kunt het huidige runlevel op een Linux-systeem controleren met behulp van opdrachten die de operationele status van het systeem rapporteren. Op traditionele systeem systemen geeft de opdracht runlevel de vorige en huidige runlevels weer, terwijl de opdracht who -r de huidige runlevel gedetailleerder weergeeft.
Op moderne systemd-gebaseerd distributies, die runlevels vervangen door doelen, de equivalente opdracht is systemctl get-default om het standaarddoel te zien, en systemctl isolate om naar een andere over te schakelen. Bovendien biedt systemctl list-units --type=target informatie over actieve targets, die gekoppeld zijn aan runlevels zoals multi-user.target of graphical.target.
Hoe verander ik het runlevel in Linux?

Het wijzigen van het runlevel in Linux hangt ervan af of het systeem de oudere versie gebruikt systeem raamwerk of de moderne systemd init systeem.
SysVinit-gebaseerde systemen
Het runlevel kan tijdelijk worden gewijzigd met de opdracht init of telinit, gevolgd door het runlevelnummer. Bijvoorbeeld, het uitvoeren van init 3 schakelt het systeem over naar de multi-usermodus zonder grafische interface, terwijl init 5 de grafische desktopomgeving start. Om de wijziging permanent te maken, moet het standaard runlevel worden gewijzigd in het bestand /etc/inittab, waar het systeem leest welk runlevel moet worden uitgevoerd. laarsje standaard ingesteld.
Systemd-gebaseerde systemen
Runlevels worden vervangen door doelenOm tijdelijk naar een ander doel over te schakelen, gebruikt u systemctl isolate , zoals systemctl isolate multi-user.target om de tekstmodus te openen of systemctl isolate graphical.target om de GUI te starten. Om de standaardinstelling voor toekomstige opstartprocedures te wijzigen, voert u systemctl set-default uit. , waarmee de symbolische koppeling voor het standaard systeemdoel wordt bijgewerkt.
Waarom is Runlevel belangrijk?
Hieronder vindt u een lijst met redenen waarom runlevels belangrijk zijn in Linux- en Unix-systemen:
- Systeem controleRunlevels definiรซren welke services en processen moeten worden uitgevoerd, waardoor beheerders nauwkeurige controle hebben over de operationele status van het systeem.
- Flexibiliteit Ze maken het mogelijk om snel te schakelen tussen verschillende modi, zoals de modus voor รฉรฉn gebruiker voor onderhoud of de grafische modus voor desktopgebruik.
- Problemen oplossenBeheerders kunnen opstarten in minimale omgevingen (zoals runlevel 1) om configuratiefouten te herstellen of te herstellen van fouten.
- resource managementDoor onnodige services in bepaalde runlevels uit te schakelen, kan het systeem tijd besparen. CPU, geheugen, en macht.
- SecurityLagere runlevels kunnen de toegang tot gebruikers en services beperken, wat handig is bij het isoleren van het systeem tijdens onderhoud of bij een vermoeden van een inbreuk.
- ConsistentieZe bieden een gestandaardiseerde structuur voor systeemstatussen op verschillende Unix-achtige systemen, waardoor het beheer wordt vereenvoudigd.
- Automatisering. Scripts en configuraties die gekoppeld zijn aan runlevels stroomlijnen het opstarten, afsluiten en de overgangen, waardoor er minder handmatig werk nodig is.
Runlevel-problemen
Hieronder vindt u een overzicht van veelvoorkomende runlevel-problemen en waarom ze belangrijk zijn:
- Verkeerd geconfigureerde standaard runlevelAls het standaard runlevel (of systemd-doel) van het systeem onjuist is ingesteld, kan de machine opstarten in een ongewenste staat, zoals de grafische modus op een server, of een niet-netwerkmodus op een werkstation, wat leidt tot verspilling van bronnen of beperkte bruikbaarheid.
- Het niet laden van kritieke services is misluktOp een bepaald runlevel zijn bepaalde daemons worden geacht automatisch te starten. Als configuratiefouten verhinderen dat ze starten, kan het systeem netwerk-, weergave- of zelfs essentiรซle inlogmogelijkheden missen, waardoor het gedeeltelijk of volledig onbruikbaar wordt.
- Onvermogen om van runlevel te wisselenProblemen met init-scripts of service afhankelijkheden Kan voorkomen dat het systeem dynamisch van modus verandert. Zo kan het overschakelen van runlevel 3 (tekstgebaseerd voor meerdere gebruikers) naar runlevel 5 (grafisch) mislukken als de displaymanager verkeerd geconfigureerd is of ontbreekt.
- Opstartlussen of crashesEen onjuiste of kapotte runlevelconfiguratie kan ertoe leiden dat het systeem herhaaldelijk probeert incompatibele services te laden, wat resulteert in voortdurende herstarts of pit paniek. Dit gebeurt vaak wanneer het standaard runlevel naar een modus verwijst die niet-beschikbare hardware of software.
- Inconsistent gedrag in verschillende distributies. Niet alles Linux-distributies Behandel runlevels op dezelfde manier. Sommigen gebruiken bijvoorbeeld runlevel 2 als standaardmodus voor meerdere gebruikers, terwijl anderen runlevel 3 of 5 gebruiken. Dit kan leiden tot verwarring en verkeerde configuraties wanneer beheerders met meerdere systemen werken.
- Overgang naar systemd-doelenModerne Linux-systemen hebben runlevels grotendeels vervangen door systemd-doelen. Hoewel ze een vergelijkbaar doel dienen, kunnen de verschillen in terminologie en opdrachten problemen opleveren voor beheerders die gewend zijn aan SysVinit, wat kan leiden tot fouten in servicebeheer en systeemherstel.
Wat is het verschil tussen Target en Runlevel?
Hier is een vergelijkingstabel die het verschil uitlegt tussen runlevels en doelen in Linux:
| Aspect | Runlevel (SysVinit) | Doel (systemd) |
| Definitie | Een vooraf gedefinieerde numerieke status (0-6) die bepaalt welke services en processen starten. | Een benoemde eenheid in systemd die services groepeert en de status van het systeem definieert. |
| Formaat | Wordt aangegeven door nummers (bijv. runlevel 3 = multi-user zonder GUI). | Geรฏdentificeerd door beschrijvende namen (bijv. multi-user.target, graphical.target). |
| Configuratiebestand | Bestuurd via /etc/inittab. | Beheerd met unit-bestanden onder /etc/systemd/system/ en /lib/systemd/system/. |
| Flexibiliteit | Vaste toestanden met beperkte aanpassingsmogelijkheden (meestal 7 runlevels). | Zeer flexible, waardoor aangepaste doelen en afhankelijkheden mogelijk zijn. |
| Standaardstatus | Ingesteld in /etc/inittab. | Instellen met systemctl set-default . |
| Wijzigingsopdracht | Tijdelijk gewijzigd met init of telinit . | Tijdelijk gewijzigd met systemctl-isolaat . |
| rekbaarheid | Niet eenvoudig uitbreidbaar; gekoppeld aan de oude SysVinit. | Volledig uitbreidbaar: beheerders kunnen nieuwe doelen creรซren voor specifieke behoeften. |
| Huidige statuscontrole | Gecontroleerd met runlevel of who -r. | Gecontroleerd met systemctl get-default of systemctl list-units --type=target. |