/ / Hvad er “Runlevels” på Linux?

Hvad er "Runlevels" på Linux?

billede

Når et Linux-system starter, indtastes det sin standardrunlevel og kører opstartskriptene, der er knyttet til det runlevel. Du kan også skifte mellem runlevels - for eksempel er der en runlevel designet til opsving og vedligeholdelse.

Traditionelt har Linux brugt System V-stil initscripts - mens nye init-systemer til sidst vil forælde traditionelle runlevels, er de endnu ikke. For eksempel bruger Ubuntu Upstart-system stadig traditionelle system V-stil scripts.

Hvad er en runlevel?

Når et Linux-system starter, starter det i det processer. init er ansvarlig for at starte de andre processer på systemet. Når du f.eks. Starter din Linux-computer, starter kernen init, og init udfører opstart-scripts for at initialisere din hardware, åbne netværk, starte dit grafiske skrivebord.

Der er dog ikke kun et enkelt sætopstart scripts init udføres. Der er flere kørselsniveauer med deres egne opstart-scripts - for eksempel kan et kørespids muligvis åbne netværk og starte det grafiske skrivebord, mens et andet kørestreng muligvis forlader netværk deaktiveret og springer det grafiske skrivebord over. Dette betyder, at du kan falde fra "grafisk desktoptilstand" til "tekstkonsoltilstand uden netværk" med en enkelt kommando uden manuelt at starte og stoppe forskellige tjenester.

Mere specifikt kører init de placerede scriptsi et specifikt bibliotek, der svarer til runlevel. Når du for eksempel indtaster runlevel 3 på Ubuntu, kører init scripts, der er placeret i /etc/rc3.d-biblioteket.

billede

I det mindste er det sådan, det fungerer med en traditionelSystem V init-system - Linux-distributioner begynder at erstatte det gamle System V init-system. Mens Ubuntu Upstart i øjeblikket opretholder kompatibilitet med SysV init-scripts, vil dette sandsynligvis ændre sig i fremtiden.

Runlevels

Nogle runlevels er standard mellem Linux-distributioner, mens nogle runlevels varierer fra distribution til distribution.

Følgende runlevels er standard:

  • 0 - Halt (Lukker systemet.)
  • 1 - Enkeltbrugertilstand (Systemet starter i superbrugertilstand uden at starte dæmoner eller netværk. Ideel til opstart i et gendannelses- eller diagnosemiljø.)
  • 6 - reboot

Runlevels 2-5 varierer afhængigt af distributionen. På Ubuntu og Debian er runlevels 2-5 for eksempel de samme og giver en fuld flerbrugertilstand med netværk og grafisk login. På Fedora og Red Hat giver runlevel 2 multi-user mode uden netværk (kun konsol login), runlevel 3 giver multi-user mode med netværk (kun konsol login), runlevel 4 er ubrugt og runlevel 5 giver multi-user mode med netværk og grafisk login.

Skift til et andet runlevel

Brug følgende kommando til at skifte til et andet løbsniveau, mens systemet allerede kører:

sudo telinit #

Udskift # med nummeret på det løbebane, du vil skifte til. Udelad sudo og kør kommandoen som root, hvis du kører en distribution, der ikke bruger sudo.

billede

Opstart direkte til et bestemt løb

Du kan vælge et kørespor, der skal startes op fra fra startlæsseren - for eksempel Grub. I starten af ​​startprocessen skal du trykke på en tast for at få adgang til Grub, vælge din startpost og trykke på e for at redigere den.

sshot-1

Du kan tilføje enkelt til slutningen af linux linje for at gå ind i enkeltbrugerens løbebane (runlevel 1). (Tryk på Ctrl + x for at starte op efter.) Dette er det samme som indstillingen til gendannelsestilstand i Grub.

billede

Traditionelt kan du angive et nummer som en kerneparameter, og du vil starte op til det løbende niveau - for eksempel ved hjælp af 3 i stedet for enkelt at starte til runlevel 3. Dette ser imidlertid ikke ud til at fungere på de nyeste versioner af Ubuntu - Upstart ser ikke ud til at tillade det. Tilsvarende afhænger af din distribution, hvordan du ændrer standardløbsløbet.


Mens Ubuntu's Upstart-dæmon stadig emulererSystemV init system, meget af denne information vil ændre sig i fremtiden. For eksempel er Upstart begivenhedsbaseret - det kan stoppe og starte tjenester, når der opstår begivenheder (for eksempel kan en service starte, når en hardwareenhed er tilsluttet systemet og stoppe, når enheden fjernes.) Fedora har også sin egen efterfølger at init, systemd.