Din Linux-dator har demoner. Här är allt du behöver veta om dem

Din Linux-dator har demoner. Här är allt du behöver veta om dem
Index
  1. Sammanfattning
  • Vad är Daemoner?
  • Visa Aktiva Daemoner
  • Aktivera och Inaktivera Tjänster
  • Starta och Stoppa Tjänster
  • Daemoner är avgörande program i Linux som hanterar systemuppgifter. Med systemctl kan du enkelt aktivera, inaktivera, starta och stoppa dessa tjänster för smidig systemadministration.

    Sammanfattning

    • Daemoner är viktiga Linux-program som utför uppgifter. systemd:s systemctl tillhandahåller procedurer för att hantera, starta eller stoppa dem effektivt.
    • Daemoner inspirerades av Maxwells demon-konceptet inom fysik. systemd hanterar moderna Linux-systemuppgifter. Att känna till daemoners funktioner är avgörande.
    • Använd kommandon som systemctl för att se aktiva daemoner, aktivera/inaktivera daemoner och starta/stänga tjänster på ett Linux-system. Att förstå daemoner kan göra systemhantering enklare.

    Du kanske har hört termen "daemon" i samband med Linux. Vad är de? Är de något att vara rädd för? Dessa små hjälpprogram är en viktig del av Linux och kommer att hjälpa till att sköta dina system och köra viktiga tjänster.

    Vad är Daemoner?

    I Linux är daemoner program som körs oberoende för att utföra olika uppgifter på systemet. Dessa uppgifter kan inkludera att köra cron för att utföra uppgifter vid specifika tider, lyssna efter inkommande nätverksanslutningar och rensa filsystemet, bland annat. De har vanligtvis namn som slutar på "-d."

    Konceptet uppstod på 1960-talet med MULTICS-projektet, ett ambitiöst försök att skapa vad som idag skulle kallas "molnberäkning." MIT:s datavetare Fernando Corbató anses ligga bakom termen i ett datorsammanhang, inspirerad av fysikern James Clark Maxwells tankexperiment om en imaginär demon som sorterar molekyler, känt som "Maxwells demon."

    Corbató skrev senare om inspirationen till termen:

    Maxwells demon var en imaginär agent som hjälpte till att sortera molekyler med olika hastigheter och arbetade outtröttligt i bakgrunden. Vi började fantasilikt använda ordet daemon för att beskriva bakgrundsprocesser som arbetade outtröttligt för att utföra systemuppgifter.

    [enlazatom_show_links]

    På andra multitasking-operativsystem kallas dessa typer av program ofta "tjänster." Det kan vara det bästa sättet att tänka på dem.

    En bra exempel är crond (uttalas "kron-d"), som kör de specifika uppgifterna i crontab-filerna. På moderna stora Linux-distributioner hanteras uppgifter som tidigare skötts av en separat daemon i allt högre grad under systemd:s paraply. Om du tittar på de aktiva daemonerna, inkluderar det saker som systemd-networkd, systemd-journald och systemd-timesyncd.

    Moderna Linux-system har många daemoner som körs i bakgrunden, särskilt på servrar. Även på desktop-system kan det finnas tiotals, till och med hundratals, som körs i bakgrunden. Det är en anledning till att du bör stänga ner ditt system på ett korrekt sätt istället för att bara trycka på strömbrytaren om möjligt.

    Visa Aktiva Daemoner

    Du kan se vilka daemoner som körs på ditt system med några enkla kommandon.

    Det enklaste sättet på de flesta moderna distributionerna är att använda systemctl-kommandot som tillhandahålls av systemd. Du kan se alla tjänster på ditt system genom att endast använda systemctl. En "enhet" är en liten textfil som talar om för systemd hur man laddar ett program och andra enheter som en enhet kan behöva, kända som "beroenden," som överförs från pakethantering.

    
    systemctl list-units

    Du kan också se systemd-enheterna som faktiskt är daemoner genom att lista tjänster, vilket är den term som systemd har antagit:

    systemctl list-units --type=service

    Detta listar alla servicemoduler som är installerade på ditt system. För att se vilka som faktiskt körs kan du använda detta kommando:

    systemctl list-units --type=service state=active

    Detta ger dig en lista över aktiva tjänster. På denna Debian virtuella maskin har vi ett antal aktiva tjänster, inklusive Avahi, som gör att systemet kan ansluta automatiskt till andra enheter som skrivare på det lokala nätverket, samt NetworkManager, som hanterar nätverksanslutningen. Jag gillar hur det är prydligt organiserat i en tabell. "Beskrivning"-avsnittet talar om vad dessa tjänster faktiskt gör.

    Windows Aktivitetshanterare tillåter dig bara att själv söka efter vad dessa mystiska tjänster gör, men de har åtminstone en snabb länk för att söka efter det.

    Det klassiska sättet att visa aktiva daemoner är att använda ps-kommandot. Vi kan använda "aux"-alternativen för att se alla processer på systemet, oavsett vem de tillhör, eftersom de flesta processer tillhör superanvändaren, och dig.

    Du är troligtvis inte superanvändaren. Om du är det bör du snabbt ändra det genom att skapa ditt eget användarkonto.

    För att se alla processer på systemet med ps:

    ps aux

    Du kommer inte att ha lika mycket information om vilka som är tjänster (daemons), men en bra ledtråd är att om namnet slutar med "-d" som jag nämnde tidigare. Fältet "TTY" kommer också vanligtvis att ha ett "?" (frågetecken), vilket indikerar att de startades utan en kontrollerande terminal.

    Du kan också se alla körande processer, inklusive tjänster, med top eller htop, vilket ger en mer färgglad utdata.

    Aktivera och Inaktivera Tjänster

    Du kan aktivera och inaktivera tjänster efter behag. Linux är traditionellt ett system för experter och sätter få hinder i vägen för att hantera ditt system så som du vill.

    Det vanligaste sättet att lägga till en ny tjänst i ditt system är att installera den från din paketförvaltare. Till exempel, om du ville installera NGINX webbserver på ett Debian- eller Ubuntu-system, förutsatt att du har administrativa rättigheter:

    
    sudo apt install nginx

    Vad som händer efteråt beror på vilken distribution du använder. Vissa distributioner, som Debian och Ubuntu, kommer att aktivera en tjänst vid start. Andra, som Arch, kommer vanligtvis att lämna det ansvaret till dig. Det är enkelt att göra med systemctl.

    För att aktivera en tjänst:

    sudo systemctl enable daemon.service

    Till exempel, för att aktivera NGINX:

    sudo systemctl enable nginx.service

    Att inaktivera tjänster med systemctl är liknande:

    sudo systemctl disable nginx.service

    Se till att du vet vad en tjänst gör innan du inaktiverar den, särskilt sådana som installerades med ditt system. Om du är osäker, låt den vara.

    Starta och Stoppa Tjänster

    Du behöver inte vänta på omstarter för att göra ändringar i körande tjänster. Du kan starta och stoppa tjänster när du vill så länge du har administrativa rättigheter. På de flesta Linux-system innebär detta att du antingen har tillgång genom root-lösenordet eller sudo. Vi kommer att använda det senare.

    Du kanske vill starta en tjänst när du har installerat en. Beroende på distributionen kan det startas automatiskt när du installerar en tjänst från din distributions paketförvaltare. Debian och Ubuntu är bra exempel. På andra distributioner kan du vara ansvarig för att starta den själv. Arch Linux är ett bra exempel på det senare.

    Eller så kanske du vill starta en tjänst igen efter att ha stoppat den tidigare.

    Anta att du ville starta NGINX webbserver. För att göra det med systemctl:

    systemctl start nginx.service

    Du kan också stoppa tjänster som körs. Återigen kan du använda systemctl för att stoppa processen:

    sudo systemctl stop nginx.service

    Att starta och stoppa processer på det här sättet kommer bara att påverka den aktuella omstarten. För att göra mer permanenta ändringar måste du aktivera eller inaktivera tjänster med metoderna som nämns i avsnittet "aktivera och inaktivera tjänster".

    Ofta vill du starta om en tjänst. Du kanske har uppdaterat versionen av den körande tjänsten eller gjort en ändring i dess konfigurationskommando. Ett sätt att göra detta är att stoppa och sedan starta om tjänsten:

    sudo systemctl stop daemon.service
    sudo systemctl start daemon.service

    Du kan göra detta i en kommandorad och spara lite slit på dina fingrar med kommandot systemctl restart. Anta att du har gjort ändringar i din NGINX-server och vill testa dem. Du kan använda detta kommando:

    sudo systemctl restart nginx.service

    Så enkelt är det på ett modernt Linux-system. Även med klagomål om systemds påstådda uppblåsthet, har det gjort att starta och stoppa processer enklare utan att behöva gräva igenom symboliska länkar som jag fick göra med det gamla SysVInit-systemet. Jag antar att många andra utvecklare och systemadministratörer känner likadant, med tanke på hur snabbt systemd accepterades i Linux-ekosystemet.

    Tjänster kan verka skrämmande om du inte är van vid dem, men ett fåtal kommandon är allt som krävs för att tämja dem på ditt Linux-system. Du kanske inte lägger märke till dem, men de finns alltid där på ditt Linux-system, vilket gör livet enklare för dig.

    Nu när du har läst klart Din Linux-dator har demoner. Här är allt du behöver veta om dem, 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