Hur man listar Linux-tjänster med systemctl

Hur man listar Linux-tjänster med systemctl
Index
  1. Sammanfattning
  • Vad är Tjänster och Daemoner?
  • Init eller Systemd Baserad?
  • Använda Systemctl för att Lista Tjänster
  • Använda systemctl för att Lista Enhetsfiler
  • Granska En Tjänst i Detalj
  • De Autonoma Systemen
  • Lär dig att använda kommandona "systemctl" för att lista aktiva tjänster, kontrollera tjänsters status och se alla aktiverade enhetsfiler på din Linux-enhet.

    Sammanfattning

    • På de flesta Linux-enheter kan du köra "systemctl --type=service --state=running" för att se aktiva tjänster.
    • Få detaljerad information om en tjänst, som SSH till exempel, med kommandot "systemctl status sshd".
    • För att se alla aktiverade enhetsfiler på ditt system, använd "systemctl list-unit-files --state=enabled".

    Din Linux-dator är beroende av många bakgrundsuppgifter som kallas tjänster eller daemoner. I systemd-baserade distributioner har du inbyggda kommandon som låter dig se vilka tjänster som körs, är avstängda eller har misslyckats.

    Vad är Tjänster och Daemoner?

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

    En gång i tiden startades tjänster av init, som var den allra första processen som kördes. Information om tjänsterna hölls i en samling skript som fanns i katalogen "/etc/init/d". På icke-systemd distributioner är det fortfarande fallet.

    I systemd-världen startas tjänster av systemd, som nu är den första processen som körs. Detaljerna om tjänsterna lagras i enhetsfiler som finns i katalogen "/usr/lib/systemd".

    Enligt dess man-sida är systemd en system- och tjänstehanterare. Du kan använda kommandot systemctl för att inspektera och styra olika aspekter av systemd-systemet, inklusive tjänster och daemoner.

    [enlazatom_show_links]

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

    Init eller Systemd Baserad?

    Den stora majoriteten av Linux-distributioner använder systemd, inklusive Arch, Red Hat och Debian, samt många av de distributioner som härstammar från dem. Det inkluderar familjen av Ubuntu-distributioner, Fedora och dess varianter, samt Manjaro och andra Arch-baserade distributioner.

    Det finns dock fork eller varianter av några av dessa distributioner som har skapats specifikt för att undvika att behöva använda systemd. Dessutom finns det andra init-system som någon kan välja att använda istället för det som kom som standard i deras distribution, såsom runit eller s6-linux-init.

    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å process-trädet med kommandot pstree. Vi behöver bara se toppen av trädet—vi letar trots allt efter den allra första processen som körs—så vi kommer att dirigera utdata genom kommandot head, och be om 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 systemd-baserad installation av Linux.

    Använda Systemctl för att Lista Tjänster

    Kommandot för att lista tjänster och daemoner är systemctl. Vi kan förfina systemctl-kommandot med alternativen type och state. Vi ber systemctl att rapportera om tjänster som är i körande tillstånd.

    systemctl --type=service --state=running

    En tabell med information genereras. Om den är för bred eller lång för ditt terminalfönster visas den i din standard filvisare, som troligen kommer att vara less.

    För att se högra sidan av tabellen, tryck på Höger Pil-tangenten. För att återgå till den vanliga vyn, tryck på Vänster Pil-tangenten.

    Tryck på Q-tangenten för att avsluta less. Kolumnerna som visas är:

    • Enhet: Namnet på tjänsten eller daemonen. Kolumnen kallas "Enhet" eftersom allt som finns i denna kolumn startades med information som systemd hittade i en enhetsfil.
    • Last: Lasttillståndet för tjänsten eller daemonen. Det kan vara laddad, ej hittad, fel inställning, fel, eller maskerad.
    • Aktiv: Det övergripande tillståndet tjänsten eller daemonen befinner sig i. Det kan vara aktiv, omladdning, inaktiv, misslyckad, aktiverar, eller avaktiverar.
    • SUB: Delstaten för tjänsten eller daemonen. Det kan vara död, avslutad, misslyckad, inaktiv, eller körande.
    • Beskrivning: En kort beskrivning av enheten.

    Vi kan skicka utdata från systemctl genom grep om vi vill fokusera på en enda tjänst. Denna kommando isolerar tabellägget för ssh-tjänsten.

    systemctl --type=service --state=running | grep ssh

    Hittills har vi filtrerat innehållet i tabellen genom att ange alternativet state=running. Vi kan använda valfri av de möjliga värdena för delstater istället: dead, exited, failed, inactive eller running.

    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ågot mellanslag mellan alternativ. Observera att detta hittar tjänster som matchar antingen tillstånd.

    systemctl --type=service --state=failed,exited

    Genom att trycka på högerpilknappen för att titta på kolumner som inte syns visar 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. Därför kallas alla dessa processer för "enheter."

    Det finns ett alternativ för att uttryckligen begära systemctl att lista enheter, men eftersom det är standardåtgärden används det sällan.

    Dessa kommandon ger samma resultat.

    sudo systemctl list-units --type=service --state=running
    sudo systemctl --type=service --state=running

    Använda systemctl för att Lista Enhetsfiler

    Vi kan utöka omfånget 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 installerade på din dator.

    systemctl list-unit-files --state=enabled

    En färgad tabell visas.

    Att ta bort alternativet state tar bort filtreringen. 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 utdata från våra tidigare kommandon.

    Om du faktiskt vill använda alternativet state, 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 mellanslag.

    Detta kommando kommer att lista alla enhetsfiler som antingen är inaktiverade eller misslyckades med att starta.

    systemctl list-unit-files --state=disabled,failed

    En reducerad mängd resultat visas, filtrerade enligt de val du gjorde med tillståndsalternativet.

    Granska En Tjänst i Detalj

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

    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 demon.

    systemctl status sshd

    Denna kompakta visning visar:

    • Tjänstens namn tillsammans med en kort beskrivning. En färgkodad punkt visar om den är igång eller inte. Grön betyder att den är igång, röd betyder att den inte är det.
    • Vad som har laddats, inklusive sökvägen till enhetsfilen.
    • Hur länge den har varit igång.
    • Var dokumentationen finns i man-manualen.
    • Process-ID för den körande instansen.
    • Hur många samtidiga instanser av denna tjänst som körs. Vanligtvis är detta en.
    • Hur mycket minne som används.
    • Hur mycket CPU-tid som har förbrukats.
    • Den kontrollgrupp som tjänsten tillhör.

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

    De Autonoma Systemen

    Tjänster och demoner tillhandahåller mycket av de automatiska åtgärderna i ditt operativsystem, så de är avgörande. Det betyder att deras hälsa är avgörande också.

    Att få en överblick över dina tjänster, demoner och enhetsfiler är.

    Enkel och informativ. Det är också ett värdefullt felsökningssteg om en tjänst eller daemon vägrar att starta.

    Nu när du har läst klart Hur man listar Linux-tjänster med systemctl, inbjuder vi dig att utforska kategorin Linux ytterligare. Där hittar du fler intressanta artiklar som kommer att utöka dina kunskaper och hålla dig informerad. Sluta inte läsa och upptäcka mer!

    Lämna ett svar

    Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

    Go up