Sådan ændres runniveauer (mål) i SystemD


Systemd er et moderne init-system til Linux: en system- og servicemanager, der er kompatibel med det populære SysV init-system og LSB init-scripts. Det var beregnet til at overvinde manglerne ved SysV init som forklaret i den følgende artikel.

  1. Historien bag 'init' og 'systemd': Hvorfor 'init' skal erstattes med 'systemd' i Linux

På Unix-lignende systemer som Linux er den nuværende driftstilstand for operativsystemet kendt som et runlevel; det definerer, hvilke systemtjenester der kører. Under populære init-systemer som SysV init identificeres runlevels med tal. Imidlertid kaldes systemd runlevels mål.

I denne artikel vil vi forklare, hvordan du ændrer runlevels (target) med systemd. Før vi bevæger os videre, lad os kort se på forholdet mellem runlevelsnumre og mål.

  • Kørselsniveau 0 matches med poweroff.target (og runlevel0.target er et symbolsk link til poweroff.target).
  • Kørselsniveau 1 matches med rescue.target (og runlevel1.target er et symbolsk link til rescue.target).
  • Kørselsniveau 3 emuleres af multi-user.target (og runlevel3.target er et symbolsk link til multi-user.target).
  • Kørselsniveau 5 er efterlignet af graphical.target (og runlevel5.target er et symbolsk link til graphical.target).
  • Kørselsniveau 6 er efterlignet af reboot.target (og runlevel6.target er et symbolsk link til reboot.target).
  • Nødsituation matches af emergency.target.

Sådan får du vist det aktuelle mål (kørselsniveau) i Systemd

Når systemet starter, aktiveres systemd som standard default.target-enheden. Det vigtigste arbejde er at aktivere tjenester og andre enheder ved at trække dem ind via afhængigheder.

For at se standardmålet skal du skrive kommandoen nedenfor.

#systemctl get-default 

graphical.target

For at indstille standardmålet skal du køre kommandoen nedenfor.

# systemctl set-default multi-user.target  

Sådan ændres målet (runlevel) i Systemd

Mens systemet kører, kan du skifte mål (kørselsniveau), hvilket betyder, at kun tjenester såvel som enheder, der er defineret under dette mål, nu kører på systemet.

For at skifte til runlevel 3 skal du køre følgende kommando.

# systemctl isolate multi-user.target 

For at ændre systemet til runlevel 5 skal du skrive kommandoen nedenfor.

# systemctl isolate graphical.target

For mere information om systemd, læs gennem disse nyttige artikler:

  1. Sådan styres 'Systemd' tjenester og enheder ved hjælp af 'Systemctl' i Linux
  2. Sådan oprettes og køres nye serviceenheder i Systemd ved hjælp af Shell Script
  3. Håndtering af systemstartprocesser og -tjenester (SysVinit, Systemd og Upstart)
  4. Administrer logmeddelelser under Systemd ved hjælp af Journalctl [Omfattende vejledning]

I denne vejledning viste vi, hvordan du ændrer runlevels (mål) med systemd. Brug nedenstående kommentarformular til at sende os spørgsmål eller tanker vedrørende denne artikel.