Systemctl
systemctl - Kontrollera systemd-system och tjänster
Kommandot `systemctl` används för att kontrollera och hantera systemd-system och tjänster i Unix-liknande operativsystem.
Syntax
systemctl [ALTERNATIV] [KOMMANDO]
Beskrivning
Kommandot `systemctl` används för att undersöka och kontrollera systemd-system och tjänster. Det kan starta, stoppa, aktivera och inaktivera tjänster, samt visa deras status.
Alternativ
Kommandot `systemctl` stöder flera alternativ som kan användas för att justera hur tjänster hanteras och visas:
- -t, --type=TYPE - Begränsa visning till en viss enhetstyp.
- --state=STATE - Begränsa visning till enheter i ett visst tillstånd.
- -a, --all - Visa alla enheter, inklusive inaktiva.
- --failed - Visa endast misslyckade enheter.
- -l, --full - Visa inte klippta enhetsnamn och egenskaper.
- --reverse - Invertera sorteringsordningen.
- -q, --quiet - Visa inga meddelanden.
- --no-pager - Använd inte sidvisare för utdata.
- --no-legend - Visa inte rubrik och ledtext.
- -h, --help - Visa hjälpmeddelande och avsluta.
- --version - Visa versionsinformation och avsluta.
Kommandon
`systemctl` stöder flera kommandon för att kontrollera och hantera tjänster:
- start UNIT - Starta en enhet (tjänst).
- stop UNIT - Stoppa en enhet (tjänst).
- restart UNIT - Starta om en enhet (tjänst).
- reload UNIT - Läs om konfigurationsfiler för en enhet.
- enable UNIT - Aktivera en enhet vid systemstart.
- disable UNIT - Inaktivera en enhet vid systemstart.
- status UNIT - Visa status för en enhet.
- is-active UNIT - Kontrollera om en enhet är aktiv.
- is-enabled UNIT - Kontrollera om en enhet är aktiverad vid systemstart.
- daemon-reload - Läs om systemd-konfigurationsfiler.
Exempel
Här är några praktiska exempel som visar hur du kan använda `systemctl`-kommandot:
- För att starta en tjänst:
sudo systemctl start httpd
- För att stoppa en tjänst:
sudo systemctl stop httpd
- För att starta om en tjänst:
sudo systemctl restart httpd
- För att aktivera en tjänst vid systemstart:
sudo systemctl enable httpd
- För att inaktivera en tjänst vid systemstart:
sudo systemctl disable httpd
- För att visa status för en tjänst:
systemctl status httpd
- För att kontrollera om en tjänst är aktiv:
systemctl is-active httpd
- För att läsa om systemd-konfigurationsfiler:
sudo systemctl daemon-reload
Skillnader mellan macOS och Linux
Det finns några viktiga skillnader att tänka på när man använder `systemctl`-kommandot på macOS jämfört med Linux:
- Tillgänglighet: `systemctl` är ett verktyg som är specifikt för systemd-baserade Linux-distributioner. Det är inte tillgängligt på macOS, eftersom macOS använder launchd istället för systemd.
- Init-system: På macOS används launchd som init-system, medan de flesta moderna Linux-distributioner använder systemd. Detta innebär att tjänstehantering på macOS görs med `launchctl` istället för `systemctl`.
- Kommandostruktur: `systemctl` och `launchctl` har olika syntax och kommandostrukturer för att hantera tjänster.
Exempel på att hantera tjänster på macOS med `launchctl`:
- För att starta en tjänst:
sudo launchctl load /Library/LaunchDaemons/com.example.service.plist
- För att stoppa en tjänst:
sudo launchctl unload /Library/LaunchDaemons/com.example.service.plist
Det är alltid bra att konsultera dokumentationen för `systemctl` på Linux och `launchctl` på macOS 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 `systemctl`, kontrollera följande:
- Att du har tillräckliga rättigheter för att hantera tjänster (använd `sudo` om nödvändigt).
- Att enheten eller tjänsten du försöker hantera faktiskt existerar och är korrekt konfigurerad.
- Att du använder rätt syntax och alternativ för ditt specifika kommando.
Se även
- service - Ett verktyg för att köra System V init-skript.
- init - En äldre init-process.
- launchctl - Hantera tjänster och startkonfiguration på macOS.