Hur man listar Linux-tjänster med systemctl

0
125
fatmawati achmad zaenuri/Shutterstock.com

För att se alla tjänster som körs på ett Linux-system med systemd, använd kommandot “systemctl –type=service — state=kör”. Detta kommer att visa dig varje aktiv tjänsts namn, belastning, undertillstånd och beskrivning. Du kan också ändra tillståndsvärdet för att se tjänster som är döda, avslutade, misslyckade eller inaktiva.

Din Linux-dator är beroende av många bakgrundsuppgifter som kallas tjänster eller demoner. På systembaserade distributioner har du inbyggda kommandon som låter dig se vilka tjänster som körs, inaktiveras eller misslyckas.

Tjänster och demoner

Tjänster och demoner är bakgrundsuppgifter som körs utan användargränssnitt, kräver ingen mänsklig interaktion och startas vanligtvis när datorn startar upp.

En gång i tiden lanserades tjänster av init, vilket var den allra första processen som lanserades. Informationen om tjänsterna fanns i en samling skript som finns i “/etc/init/d” katalog. På icke-systemdiska distributioner är det fortfarande fallet.

I systemd-världen lanseras tjänster av systemd, vilket är den nu första processen som lanseras. Informationen om tjänsterna lagras i enhetsfiler som finns i “/usr/lib/systemd” katalog.

Enligt sin man-sida är systemd en system- och servicehanterare. Du kan använda kommandot systemctl för att inspektera och kontrollera olika aspekter av systemd-systemet, inklusive tjänster och demoner.

Eftersom vi tittar på systemd-specifika kommandon här, är det första du behöver veta är om du kör en systembaserad distribution eller inte.

RELATERAT: Varför Linuxs systemd fortfarande är splittrad efter alla dessa år< /p>

init Eller systembaserat?

De allra flesta Linux-distributioner använder systemd, inklusive Arch, Red Hat och Debian, och många av distributionerna som härrör från dem. Det inkluderar Ubuntu-familjen av distributioner, Fedora och dess spins, och Manjaro och de andra Arch-baserade distributionerna.

Det finns dock gafflar eller smaker av några av dessa distributioner som har skapats specifikt för att undvika att behöva använda systemd. Inte bara det, utan det finns andra init-system som någon kan välja att använda istället för det som kom som standard i distributionen, som runit eller s6-linux-init.

RELATERATHur man kör ett Linux-program vid uppstart med systemd

Om du måste administrera en Linux-dator som du inte har konfigurerat själv, är det enda sättet att vara säker på om den använder systemd eller inte, att kontrollera. Vi kan göra det genom att titta på processträdet med kommandot pstree. Vi behöver bara se själva toppen av trädet—vi letar efter den allra första processen som körs, trots allt—så vi skickar utdata via head-kommandot och frågar efter de första fem posterna.

pstree | head -5

Vi kan se att systemd är den första processen som körs efter uppstart, så vi är definitivt på en systembaserad installation av Linux.

RELATERAT: Hur man hanterar processer från Linux-terminalen: 10 kommandon du Behöver du veta

Använda systemctl för att lista tjänster

Kommandot för att lista tjänster och demoner är systemctl. Vi kan förfina systemctl-kommandot med typ- och tillståndsalternativen. Vi ber systemctl att rapportera om tjänster som är i driftläge.

systemctl –type=service –state=running

En tabell med information genereras. Om det är för brett eller långt för ditt terminalfönster visas det i din standardfilvisare, vilket troligen kommer att vara mindre.

Tryck på högerpilen för att se den högra änden av tabellen. För att återgå till den vanliga vyn, tryck på vänsterpilen.

< p>Tryck på Q-tangenten för att lämna mindre. Kolumnerna som visas är:

  • Enhet: Namnet på tjänsten eller demonen. Kolumnen har titeln “Enhet” eftersom allt som finns i den här kolumnen lanserades med hjälp av information systemd som finns i en enhetsfil.
  • Ladda: Inläsningstillståndet för tjänsten eller demonen. Den kan vara laddad, inte hittad, felaktig inställning, fel eller maskerad.
  • Aktiv: Det övergripande tillståndet som tjänsten eller demonen befinner sig i. Den kan vara aktiv, laddas om , inaktiv, misslyckad, aktiverar eller inaktiverar.
  • SUB: Undertillståndet för tjänsten eller demonen. Den kan vara död, avslutad, misslyckad, inaktiv eller igång.
  • Beskrivning: En kort beskrivning av enheten.

Vi kan pipe output av systemctl genom grep om vi vill fokusera på en enda tjänst. Detta kommando isolerar tabellposten för ssh-tjänsten.

systemctl –type=service –state=kör | grep ssh

Hittills har vi filtrerat innehållet i tabellen genom att tillhandahålla alternativet state=running. Vi kan använda vilket som helst av de möjliga värdena för undertillståndet istället: död, avslutad, misslyckad, inaktiv eller igång.

Låt oss leta efter misslyckade tjänster:

systemctl — type=service –state=failed

Kombinationer av delstater kan användas. Skriv dem som en kommaseparerad lista. Se till att du inte inkluderar några blanksteg mellan alternativen. Observera att detta hittar tjänster som matchar båda tillstånden.

systemctl –type=service –state=failed,exited

Om du trycker på högerpilen för att titta på kolumnerna utanför skärmen visar det att vi har en blandning av avslutade och misslyckade tjänster i listan.

Som standard listar systemctl processer—tjänster och demoner—som har lanserats av systemd eftersom systemd hittade en enhetsfil som innehöll en giltig enhetsfil för dem. Det är därför förkortningen för alla dessa processer är “enheter.”

Det finns ett alternativ att uttryckligen begära systemctl för att lista enheter, men eftersom det är standard action, det används inte ofta.

Dessa kommandon ger samma resultat.

sudo systemctl list-units –type=service –state=kör sudo systemctl –type= service –state=running

Använda systemctl för att lista enhetsfiler

Vi kan utöka omfattningen av systemctl-kommandot genom att inkludera alternativet list-unit-files. Detta rapporterar inte bara om tjänster och demoner som har lanserats, det listar också alla enhetsfiler som är installerade på din dator.

systemctl list-unit-files –state=enabled

En färgad tabell visas.

Om du tar bort tillståndsalternativet tas filtreringen bort. Utdata kommer att innehålla alla installerade enhetsfiler, oavsett deras tillstånd.

systemctl list-unit-files

Utdata kommer att innehålla många fler poster än resultaten från de tidigare kommandona.

På vår testdator är resultatlistan nästan fyra gånger längre än resultatet från våra tidigare kommandon.

Om du vill använda tillståndsalternativet kan du använda flera tillstånd med det som vi såg tidigare. Samma regler gäller. Ange alternativen som kommaseparerade värden och inkludera inget blanksteg.

Det här kommandot listar alla enhetsfiler som antingen är inaktiverade eller som inte kunde startas.

systemctl list-unit-filer –state=enabled, failed

Ett minskat antal resultat visas, filtrerade enligt de val du gjorde med tillståndsalternativet.

Titta på en tjänst i detalj

Om något med en tjänst eller demon väcker ditt intresse och förtjänar en djupare dyk, du kan titta på det i detalj med hjälp av statusalternativet systemctl.

Låt oss ta en titt på SSH-demonen, sshd. Allt vi behöver göra är att använda statusalternativet och namnet på tjänsten eller demonen.

systemctl status sshd

Denna kompakta display visar:

  • Namnet på tjänsten tillsammans med en kort beskrivning. En färgkodad prick visar om den är igång eller inte. Grönt betyder att det körs, rött betyder att det inte är det.
  • Vad som laddades, inklusive sökvägen till enhetsfilen.
  • Hur länge det har körts.
  • li>

  • Var dokumentationen finns i manualen.
  • Process-ID för den körande instansen.
  • Hur många samtidiga instanser av den här tjänsten körs. Vanligtvis kommer detta att vara en.
  • Hur mycket minne som förbrukas.
  • Hur mycket CPU-tid har förbrukats.
  • Kontrollgruppen tjänsten tillhör.

Relevanta poster från systemloggen visas också. Dessa är vanligtvis händelser som start av tjänsten. Dessa kan vara informativa om du tittar på en tjänst eller demon som inte startade korrekt.

RELATERAT: Hur man använder journalctl för att läsa Linux-systemloggar

De autonoma systemen

Tjänster och demoner tillhandahåller många av de automatiska åtgärderna i ditt operativsystem, så de&#8217 ;är livsviktigt. Det betyder att deras hälsa också är avgörande.

Det är enkelt och informativt att få en överblick över dina tjänster, demoner och enhetsfiler. Det är också ett värdefullt felsökningssteg om en tjänst eller demon vägrar att starta.

RELATERAT: Hur man löser felet “För många öppna filer” på Linux

LÄS NÄSTA

  • › Varför du bör sluta använda GPS-navigering
  • › Hur man gör den perfekta iPhone-djupeffektlåsskärmen
  • › Windows 11s filutforskare har äntligen flikar
  • › AtlasVPN-recension: Kan det hålla upp himlen?
  • › De bästa USB-C-hubbarna 2022
  • › Pandora existerar fortfarande och det är uppfriskande enkelt