Hur man använder Systemd för att lista tjänster

Mainstream Linux-distributioner använder alla Systemd, ett init-system som fungerar baserat på att aktivera och inaktivera ”service”-filer. Om du försöker lista dessa tjänstefiler men inte vet hur du gör det, måste du använda kommandot systemctl.

I den här guiden går vi igenom de olika sätten du kan lista Systemd-tjänstfiler på Linux. För att komma igång, se till att du använder ett Linux OS med Systemd. Öppna sedan ett terminalfönster och följ med.

Använd Systemd för att lista aktiva tjänster

Om du använder Systemd mycket, någon gång, kanske du vill veta vilka tjänster som är aktiva medan ditt Linux-system är uppstartat. Att lista aktiva tjänster är väldigt enkelt, och du kan göra det med kommandot systemctl –type=service systemctl –type=service –state=körning.

Det här kommandot, när det körs, visar en tabell över alla tjänster, om de är aktiva, samt en kort beskrivning. För att köra det här programmet, öppna ett terminalfönster. När terminalfönstret är öppet, kör kommandot nedan.

systemctl --type=service --state=running

Om du försöker filtrera igenom alla aktiva tjänster för en viss tjänst kan det vara ganska tråkigt att titta igenom den här stora tabellen. Tack och lov kan systemctl-kommandot kombineras med grep-kommandot som en filtreringsmekanism.

För att till exempel kontrollera om “snapd.service” körs och laddas, kan du köra systemctl –type=service –state=running | grep ’snapd’, och utdata visar bara Snapd-tjänsten, istället för hela tabellen.

systemctl --type=service --state=running | grep 'snapd'

Om du vill spara utdata från tabellen till en textfil för senare, använd följande kommando.

systemctl --type=service --state=runningrunning > ~/active-services.txt

För att visa textfilen när som helst, utför cat-kommandot nedan.

cat ~/active-services.txt

Använd Systemd för att lista inaktiva tjänster

Att lista aktiva Systemd-tjänster är bra, men hur är det med inaktiva? Ja, det är möjligt att lista dem också. Här är hur. Öppna först ett terminalfönster.

När terminalfönstret är öppet och redo att användas, kör du systemctl –type=service-kommandot men i –state=-platsen, placera ”inaktiv” istället för ”kör”. Genom att göra detta kan du se vilka Systemd-tjänster som är inaktiva på ditt Linux-system.

systemctl --type=service --state=inactive

Liksom med de aktiva tjänsterna kommer Systemd att skapa en snygg, snygg tabell och visa dig vilka Systemd-tjänster som är inaktiva, döda och inte används. Om du vill filtrera igenom den här tabellen för att se om en specifik tjänst är död kan du kombinera den med kommandot grep.

Till exempel, för att avgöra om filen ”updatedb.service” är inaktiv, kan du kombinera systemctl –type=service –state=inactive med grep-kommandot nedan för att söka efter den i tabellen.

systemctl --type=service --state=inactive | grep 'updatedb.service'

Om du behöver spara alla inaktiva Systemd-tjänstfiler till en textfil för läsning senare, använd följande kommando.

systemctl --type=service --state=inactive > ~/inactive-services.txt

För att läsa denna textfil direkt från terminalfönstret, använd kommandot cat.

cat  ~/inactive-services.txt

Använd Systemd för att lista alla installerade tjänster

Om du behöver se alla installerade Systemd-tjänster, oavsett om de är aktiva eller inte, måste du använda systemctl list-unit-files –type=service-kommandot och exkludera kommandoradsväxeln –state. Genom att utesluta –state, kommer Systemd att kunna lista varje servicefil på din dator med lätthet.

systemctl list-unit-files --type=service

När kommandot ovan har körts kommer Systemd att skriva ut en tabell med varje servicefil på systemet. Härifrån kan du sortera i tabellen för att hitta den servicefil du behöver.

Om du inte kan hitta en specifik tjänstfil kan du kombinera systemctl list-unit-files –type=servicekommandot med kommandot grep för att använda ett filter. Använd kommandot nedan och filtrera tabellen för att hitta den servicefil du behöver.

systemctl list-unit-files --type=service | grep 'my-service'

Vill du exportera alla Systemd-tjänster till en textfil för att läsa senare? Utför följande kommando.

systemctl list-unit-files --type=service > ~/service-files.txt

Du kan se textfilen när som helst med cat-kommandot nedan.

cat ~/service-files.txt

Använd Systemd för att visa status för individuell tjänst

Även om det är bra att veta hur man listar alla Systemd-tjänster, de som är aktiva och inaktiva, är det också bra att veta hur man listar status för tjänster individuellt. Så här gör du.

Öppna först ett terminalfönster. När terminalfönstret är öppet, använd systemctl statuskommandot på en viss tjänst. Till exempel, för att hitta statusen för ”NetworkManager.service” körs följande kommando.

systemctl status NetworkManager

Om du vill exportera statuskommandots utdata till en textfil för senare läsning kan du ange kommandot nedan.

systemctl status MyService > ~/MyService-status.txt

För att visa den här filen, kör följande cat-kommando.

cat ~/MyService-status.txt