Launchctl

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

launchctl - Hantera launchd-tjänster

Kommandot `launchctl` används för att hantera launchd-tjänster i macOS. launchd är init-systemet som används i macOS för att starta, stoppa och hantera system- och användartjänster.

Syntax

launchctl [ALTERNATIV] [SUBKOMMANDO] [ARGUMENT]

Beskrivning

Kommandot `launchctl` används för att ladda, lossa, starta, stoppa och hantera launchd-tjänster och deras konfigurationsfiler. launchd är init-systemet som hanterar system- och användartjänster i macOS.

Alternativ

Kommandot `launchctl` stöder flera alternativ och subkommandon som kan användas för att justera hur tjänster hanteras:

  • `bootstrap` [--override] [domän fil] - Ladda tjänster från en specificerad domän och plistsfil.
  • `bootout` [domän fil] - Ta bort tjänster från en specificerad domän och plistsfil.
  • `enable` [tjänst] - Aktivera en tjänst.
  • `disable` [tjänst] - Inaktivera en tjänst.
  • `kickstart` [--kill | --terminate | --background] [tjänst] - Starta om en tjänst omedelbart.
  • `kill` [signal] [tjänst] - Skicka en signal till en tjänst.
  • `blame` [tjänst] - Visa information om varför en tjänst startades.
  • `print` [tjänst] - Skriv ut tjänstens konfiguration.
  • `list` [tjänst] - Lista alla laddade tjänster eller detaljer om en specifik tjänst.
  • `load` [-w] [fil] - Ladda tjänster från en plistsfil (för äldre macOS-versioner).
  • `unload` [-w] [fil] - Lossa tjänster från en plistsfil (för äldre macOS-versioner).

Exempel

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

  • För att ladda en tjänst från en plistsfil:

sudo launchctl bootstrap system /Library/LaunchDaemons/com.example.service.plist

  • För att ta bort en tjänst:

sudo launchctl bootout system /Library/LaunchDaemons/com.example.service.plist

  • För att aktivera en tjänst:

sudo launchctl enable system/com.example.service

  • För att inaktivera en tjänst:

sudo launchctl disable system/com.example.service

  • För att starta om en tjänst omedelbart:

sudo launchctl kickstart -k system/com.example.service

  • För att lista alla laddade tjänster:

launchctl list

  • För att skriva ut konfigurationen för en specifik tjänst:

launchctl print system/com.example.service

Skillnader mellan macOS och Linux

Det finns betydande skillnader mellan hur macOS och Linux hanterar system- och användartjänster:

  • Init-system: macOS använder `launchd` som sitt init-system, medan de flesta moderna Linux-distributioner använder `systemd`. Tidigare Linux-distributioner använde System V init eller Upstart.
  • Hanteringsverktyg: På macOS används `launchctl` för att hantera tjänster, medan `systemctl` används på systemd-baserade Linux-system.
  • Konfigurationsfiler: macOS använder plistsfiler för att konfigurera tjänster, medan Linux-systemd använder enhetsfiler med `.service`-suffixet.
  • Standardplaceringar: Tjänstekonfigurationsfiler i macOS placeras i `/Library/LaunchDaemons` eller `/Library/LaunchAgents` för systemtjänster, och `~/Library/LaunchAgents` för användartjänster. På systemd-baserade Linux-system placeras tjänstekonfigurationer i `/etc/systemd/system` och `/lib/systemd/system`.

Exempel på att starta en tjänst:

  • På macOS:

sudo launchctl bootstrap system /Library/LaunchDaemons/com.example.service.plist

  • På Linux:

sudo systemctl start example.service

Det är alltid bra att konsultera `man`-sidan för `launchctl` på macOS och `systemctl` på Linux 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 `launchctl`, kontrollera följande:

  • Att konfigurationsfilen är korrekt formaterad och placerad i rätt katalog.
  • Att du har tillräckliga rättigheter för att ladda eller lossa tjänsten (använd `sudo` om nödvändigt).
  • Att tjänsten är korrekt definierad och inte innehåller några fel.

Se även

  • systemctl - Hantera systemd-tjänster på moderna Linux-distributioner.
  • service - Hantera System V-tjänster på äldre Linux-system.== launchctl - Hantera launchd-tjänster ==

Kommandot `launchctl` används för att hantera launchd-tjänster i macOS. launchd är init-systemet som används i macOS för att starta, stoppa och hantera system- och användartjänster.

Syntax

launchctl [ALTERNATIV] [SUBKOMMANDO] [ARGUMENT]

Beskrivning

Kommandot `launchctl` används för att ladda, lossa, starta, stoppa och hantera launchd-tjänster och deras konfigurationsfiler. launchd är init-systemet som hanterar system- och användartjänster i macOS.

Alternativ

Kommandot `launchctl` stöder flera alternativ och subkommandon som kan användas för att justera hur tjänster hanteras:

  • `bootstrap` [--override] [domän fil] - Ladda tjänster från en specificerad domän och plistsfil.
  • `bootout` [domän fil] - Ta bort tjänster från en specificerad domän och plistsfil.
  • `enable` [tjänst] - Aktivera en tjänst.
  • `disable` [tjänst] - Inaktivera en tjänst.
  • `kickstart` [--kill | --terminate | --background] [tjänst] - Starta om en tjänst omedelbart.
  • `kill` [signal] [tjänst] - Skicka en signal till en tjänst.
  • `blame` [tjänst] - Visa information om varför en tjänst startades.
  • `print` [tjänst] - Skriv ut tjänstens konfiguration.
  • `list` [tjänst] - Lista alla laddade tjänster eller detaljer om en specifik tjänst.
  • `load` [-w] [fil] - Ladda tjänster från en plistsfil (för äldre macOS-versioner).
  • `unload` [-w] [fil] - Lossa tjänster från en plistsfil (för äldre macOS-versioner).

Exempel

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

  • För att ladda en tjänst från en plistsfil:

sudo launchctl bootstrap system /Library/LaunchDaemons/com.example.service.plist

  • För att ta bort en tjänst:

sudo launchctl bootout system /Library/LaunchDaemons/com.example.service.plist

  • För att aktivera en tjänst:

sudo launchctl enable system/com.example.service

  • För att inaktivera en tjänst:

sudo launchctl disable system/com.example.service

  • För att starta om en tjänst omedelbart:

sudo launchctl kickstart -k system/com.example.service

  • För att lista alla laddade tjänster:

launchctl list

  • För att skriva ut konfigurationen för en specifik tjänst:

launchctl print system/com.example.service

Skillnader mellan macOS och Linux

Det finns betydande skillnader mellan hur macOS och Linux hanterar system- och användartjänster:

  • Init-system: macOS använder `launchd` som sitt init-system, medan de flesta moderna Linux-distributioner använder `systemd`. Tidigare Linux-distributioner använde System V init eller Upstart.
  • Hanteringsverktyg: På macOS används `launchctl` för att hantera tjänster, medan `systemctl` används på systemd-baserade Linux-system.
  • Konfigurationsfiler: macOS använder plistsfiler för att konfigurera tjänster, medan Linux-systemd använder enhetsfiler med `.service`-suffixet.
  • Standardplaceringar: Tjänstekonfigurationsfiler i macOS placeras i `/Library/LaunchDaemons` eller `/Library/LaunchAgents` för systemtjänster, och `~/Library/LaunchAgents` för användartjänster. På systemd-baserade Linux-system placeras tjänstekonfigurationer i `/etc/systemd/system` och `/lib/systemd/system`.

Exempel på att starta en tjänst:

  • På macOS:

sudo launchctl bootstrap system /Library/LaunchDaemons/com.example.service.plist

  • På Linux:

sudo systemctl start example.service

Det är alltid bra att konsultera `man`-sidan för `launchctl` på macOS och `systemctl` på Linux 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 `launchctl`, kontrollera följande:

  • Att konfigurationsfilen är korrekt formaterad och placerad i rätt katalog.
  • Att du har tillräckliga rättigheter för att ladda eller lossa tjänsten (använd `sudo` om nödvändigt).
  • Att tjänsten är korrekt definierad och inte innehåller några fel.

Se även

  • systemctl - Hantera systemd-tjänster på moderna Linux-distributioner.
  • service - Hantera System V-tjänster på äldre Linux-system.
  • init - Traditionellt init-system på Unix-liknande system.

Källor

  • init - Traditionellt init-system på Unix-liknande system.

Källor