Eftersom Linux-operativsystemet karaktäriseras som ett multitasking-operativsystem är en demon per definition ett program som kontinuerligt körs som en bakgrundsprocess. Kort sagt, utförandet av denna process är inte beroende av en aktiv användares systeminteraktion. En normal systemanvändare kan inte kontrollera det periodiska utförandet av en demonprocess.
Namngivningskonventionen som definierar de flesta daemonprocesser är en bokstav "suffix" d. Denna namngivningskonvention gör det möjligt att skilja mellan normala systemprocesser och daemondrivna processer. Till exempel, sshd är en demonprocess som ansvarar för hanteringen av inkommandeSSH anslutningar. Ett annat exempel på en demonprocess ärsyslogd. Det ansvarar för Linux-systemets loggningsanläggning.
I en Linux-miljö är lanseringen av demoner vid starttiden. Eftersom Linux-systemet är en perfekt Unix-klon, kvalificeras en init-process som överordnad process till en demon. För att starta och stoppa demoner på ditt Linux-operativsystem måste du först komma åt/ etc / init.d skriptkatalog på ditt operativsystem.
Vanliga demoner fungerar
- Det gör att ditt system kan svara korrekt på nätverksförfrågningar genom att associera varje förfrågan till en kompatibel nätverksport. En typisk nätverksport som hanteras av demoner är port 80.
- Daemons gör det möjligt att köra eller utföra schemalagda systemuppgifter. Den demon som är ansvarig för denna specifika uppgift kallas cron. Det kommer att skapa en Cron jobb som hanterar det periodiska utförandet av dina schemalagda uppgifter.
- Daemons erbjuder också ett ovärderligt bidrag för att övervaka prestanda för ditt system. De kan till exempel kontrollera RAID-arrayen eller hårddiskens hälsa.
Användbara Linux-tjänstedemoner
- amd: Auto Mount Daemon
- anacron: Starttidskörning av försenade cron-uppgifter
- apmd: Advanced Power Management Daemon
- atd: Används vid verktygsfunktionalitet för att utföra jobb i kö
- autofs: arbetar hand i hand med automounter-demon för att underlätta montering och demontering av systemenheter på begäran
- crond: en demon som hanterar schemaläggning av uppgifter
- cupsd: en demon som hanterar CUPS-utskrift
- DHCP: daemon för både Internet Bootstrap-protokollserver och Dynamic Host Configuration Protocol.
- gated: routing-demon ansvarig för flera routing-protokoll. Det ersätter routed och egpup
- httpd: en demon som handlar om webbservrar som Apache
- inetd: daemon associerad med Internet Superserver
- imapd: daemon för IMAP-servern
- lpd: Line Printer Daemon
- memcached: objektcaching-demon som distribueras i minnet
- monterad: mount daemon
- MySQL: daemon för MySQL-databasservern
- som heter: daemon för DNS-server
- nfsd: Nätverksfildelningsdemon
- nfslock: Eftersom nfsd är associerat med fillåsningstjänster kan den här demon starta och stoppa dessa tjänster.
- nmbd: daemon för Network Message Block
- ntpd: daemon för tjänsten Network Time Protocol
- postfix: en demon som fungerar som posttransportagent. Det är ett alternativ till sendmail.
- Postgresql: daemon för Postgres-databasservern
- dirigeras: daemon för hantering av routingtabeller
- rpcbind: daemon associerad med Remote Procedure Call Bind
- skicka brev: en demon som fungerar som e-postöverföringsagent
- smbd: daemon för Samba SMB-server
- smtpd: daemon för Simple Mail Transfer Protocol
- snmpd: daemon för Simple Network Management Protocol
- bläckfisk: daemon associerad med en proxyserver för caching på webbsidor
- sshd: daemon associerad med Secure Shell Server
- synkroniserad: daemon för att synkronisera systemminnet med systemfiler
- Syslog: en demon som utför systemloggning
- tcpd: det här daemon-tjänsteomslaget kör åtkomstbegränsningsprotokoll relaterade till de inetd-baserade daemontjänsterna. Det genomför dessa begränsningar genom värdar.tillåta och värdar.förneka.
- Telnetd: daemon för telnet-servern
- vsftpd: daemon för mycket säkert filöverföringsprotokoll
- webbmin: daemon för den webbaserade administrationsservern
- xinetd: daemon associerad med Enhanced Internet Supervisor
- xntd: daemon för Network Time Server
Oavsett om du är en nybörjare, mellanliggande eller expertanvändare i Linux-operativsystemvärlden kommer du aldrig att misslyckas med att bekanta dig med någon av ovan nämnda demoner när du utvecklar dina färdigheter och expertis inom denna OS-miljö.
Starta / stoppa / starta om demoner: den terminalbaserade metoden
Nu när du har en lista över användbara Linux-demoner att memorera och utforska, är det första du behöver veta hur man startar, stoppar eller startar om demonerna. Med din Linux Terminal lanserad, överväg följande syntaxregler för att starta, stoppa och starta om en demon på ditt Linux-operativsystem.
tjänsten föredras-start av demonnamn tjänsten preferens-daemon-namn stopp starta om tjänsten föredraget-daemon-namn
Ersätt föredraget-daemon-namn syntaxargument med namnet på Linux-systemets demon som du väljer. Du kan välja en från dememonlistan som är markerad ovan så länge den är aktiv eller redan definierad på ditt Linux-system. Vi kan till exempel implementera den praktiska användningen av ovanstående syntax genom att försöka starta, stoppa och starta om ademon. Navigera till / etc / init.d katalog på din terminal för en lista över tillgängliga demoner på ditt Linux-system.
Lista upp dina Linux-systemens demoner
Ett mer effektivt sätt att notera tillgängliga demoner på ditt Linux-system istället för att navigera till / etc / init.d katalog är att lista alla definierade aktiva och inaktiva demoner från den katalogen med ett enda kommando. Följande kommando är effektivt för att uppnå detta mål.
$ service -status-all
De avstängda positiva [+] och negativa [-] tecknen före de listade daemon-namnen antyder att de är antingen aktiva eller inaktiva respektive.
Arbeta med användardefinierade demoner
Specifika regler eller protokoll måste följas för att skapa och implementera en användardefinierad daemon framgångsrikt. Dessa protokoll hjälper dig att förstå utförandet av demoner i alla Linux-miljöer. Daemons är också tillräckligt flexibla för att gränssnitt med kärnmoduler genom systemanrop. Denna daemon-funktionssträcka stöder dess interaktion med hårdvaruenheter som PDA (Personal Digital Assistants), skrivare och livskraftiga externa styrkort. Byggstenarna till demoner bidrar också till Linux-operativsystemets karakteristiska kraft och flexibilitet.
En relatabel daemonimplementering med Python demonstreras och dokumenteras noggrant av Sander Marechal. Var angelägen om att följa körningsordern när du skapar denna demon. Först och främst behöver ditt Linux-system installation av Python-paket för att framgångsrikt kunna utveckla demoner. För att installera Python kan du använda följande kommando.
$ sudo apt installera python3-pip python3-dev
Länken till Sander Marechals författade Python-daemonkod erbjuder också en raffinerad Python 3-kodversion. Det skulle hjälpa om du funderade på att implementera den för att bättre förstå hur demoner fungerar.
Om du är osäker på om du har Python installerat kör du följande kommando på din Linux-terminal.
$ python3 --version
Syftet med någon daemon
Eftersom en enda demon är dedikerad till att hantera en specifik uppgift, bör den utföra den till perfektion. Uppgiften i fråga kan vara så enkel som att skapa en rapport och skicka den till en administratör via sendmail eller så komplicerad som att hantera flera domäner länkade till flera brevlådor. Vid någon tidpunkt måste den demon du ska skapa prata med andra befintliga demoner.
interaktion mellan användare och daemon
Det är avskräckt att systemanvändaren och den skapade daemon kommunicerar direkt. Om det är nödvändigt för demonen skapar du för att kommunicera med en systemanvändare. Denna kommunikation kan underlättas genom något som ett GUI-gränssnitt. Denna kommunikationsplattform kan antingen ha GTK + GUI-komplexitet eller enkel signalinställning.
Skapa din demon
Många tillvägagångssätt stöder skapandet av demoner. Du kan till exempel använda kommandoradsgränssnittet för att demonisera ett Python-skript enligt följande:
$ python my_python_script.py &
Du kan spara Sander Marechals författade Python3-daemonkod i en Python-fil och demonisera den med ovanstående kommando. Medan ovanstående terminalkommando enkelt skapar en demon för dig, måste du hantera utmaningar som oförutsägbara terminalutgångar. Dessa utmaningar beror på hur bra du omformulerade din Python-daemonkod. Ovanstående tillvägagångssätt stöder inte tilldelning av PID-låsfiler till specifika demoner. Det gör det omöjligt att kontrollera någon demon eftersom de flesta kommer att köras omedelbart. Å andra sidan, om du bara behöver en enkel daemon, kommer ovannämnda tillvägagångssätt att ge dig önskade daemonresultat.
Daemon grundläggande struktur
Innan en daemon kör eller utför en avsedd funktion, måste den överväga några förutbestämda regler som leder till dess körning. Du kan tänka på dessa regler som hushållsarbete på låg nivå som leder till dess verkliga uppgift. Dessa regler kan delas upp i följande steg.
- Att skapa en gaffel från en överordnad process sker först
- Ändring av umask (fillägesmask) följer
- Loggar öppnas för skrivning
- Ett unikt SID (Sessions-ID) skapas
- Exekvering växlar från den aktuella arbetskatalogen till en sekundär plats för att bevara filintegriteten
- Standardfilbeskrivare är stängda
- Utförande av riktad daemonkod
Mer om exempel på implementeringar av demoner finns på GitHub.