Init

Från Wiki.linux.se
Version från den 27 maj 2024 kl. 06.58 av Admin (diskussion | bidrag) (→‎Källor)
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök

init - Initieringsprocessens fader

Kommandot `init` är den första processen som startas av kärnan i Unix-liknande operativsystem och är ansvarig för att starta och hantera andra systemprocesser.

Syntax

init [RUNLEVEL]

Beskrivning

Kommandot `init` används för att initiera systemet och hantera runlevels, som definierar vilka tjänster och processer som ska köras vid olika systemtillstånd. Det är kärnans första användarprocess och har alltid process-ID 1.

Alternativ

Kommandot `init` har traditionellt sett få alternativ eftersom det främst styrs av konfigurationsfiler. Här är några vanliga alternativ och argument:

  • RUNLEVEL - Sätt systemet i ett specifikt runlevel. Vanliga runlevels är:
 * 0 - Stäng av systemet
 * 1 - Enanvändarläge
 * 3 - Flernätverksläge (textläge)
 * 5 - Flernätverksläge (grafiskt läge)
 * 6 - Starta om systemet

Exempel

Här är några praktiska exempel som visar hur du kan använda `init`-kommandot:

  • För att stänga av systemet:

sudo init 0

  • För att starta om systemet:

sudo init 6

  • För att sätta systemet i enanvändarläge:

sudo init 1

  • För att växla till flernätverksläge (textläge):

sudo init 3

  • För att växla till flernätverksläge (grafiskt läge):

sudo init 5

Skillnader mellan macOS och Linux

Det finns betydande skillnader mellan hur macOS och Linux hanterar systeminitiering och runlevels:

  • Init-system: Traditionella Linux-system använder System V init för att hantera runlevels. Moderna Linux-distributioner har dock oftast ersatt detta med `systemd`, som använder "targets" istället för runlevels. macOS använder `launchd` som sitt init-system och hanterar tjänster med `launchctl`.
  • Runlevels vs Targets: På systemd-baserade system har runlevels ersatts med "targets". Till exempel motsvarar `runlevel 3` i System V init ungefär `multi-user.target` i systemd.
  • Init-kommando: På systemd-baserade Linux-system används kommandot `systemctl` för att hantera systemets tillstånd. Exempelvis ersätter `systemctl isolate multi-user.target` kommandot `init 3`.

Exempel på att stänga av systemet:

  • På traditionella Linux-system:

sudo init 0

  • På systemd-baserade Linux-system:

sudo systemctl poweroff

  • På macOS:

sudo shutdown -h now

Det är alltid bra att konsultera `man`-sidan för `init` eller `systemctl` på din specifika plattform för att se vilka alternativ och funktioner som är tillgängliga och hur de används.

Felsökning

Om du får ett felmeddelande när du använder `init`, kontrollera följande:

  • Att du har tillräckliga rättigheter för att ändra systemets runlevel (använd `sudo` om nödvändigt).
  • Att du använder rätt syntax och argument för ditt specifika system.
  • Att init-systemets konfigurationsfiler är korrekt konfigurerade och inte innehåller fel.

Se även

  • systemctl - Hantera systemd-tjänster på moderna Linux-distributioner.
  • shutdown - Stäng av eller starta om systemet.
  • reboot - Starta om systemet.
  • launchctl - Hantera tjänster och startprocesser på macOS.

Källor