logo

Linux Daemon

Vad är en demon?

En demon är ett slags program över UNIX-liknande OS som körs diskret i bakgrunden, istället för direkt åtkomst av en användare. Den väntar på att utlösas av uppkomsten av ett visst tillstånd eller händelse.

Vanligtvis exekverar UNIX-liknande system många demoner, främst för att tillgodose förfrågningar om tjänster via andra system i nätverket, för hårdvaruaktivitet och för att också svara på andra program.

Exempel på villkor eller åtgärder som kan aktivera demoner i aktiviteten kan vara ett visst datum eller tidpunkt, passerande av ett beskrivet tidsintervall, mottagande av en webbförfrågan eller e-post som skapats från en specifik kommunikationslinje och en fil som landar i en specifik katalog.

binärt träd i java

Det är inte obligatoriskt att en förövare av ett tillstånd eller en handling är känd för att demonen lyssnar.

Emellertid skulle program ofta implementera en åtgärd bara för att de är kända för att den implicit skulle väcka en demon.

En demon kallas också bakgrundsprocesser. Det är ett UNIX- eller Linux-program som körs i bakgrunden. Nästan varje demon innehåller namn som slutar med bokstaven 'd'. Till exempel, sshd, detta hanterar anslutningar av SSH fjärråtkomst, eller httpd-demonen som hanterar Apache-servern. Ofta startar Linux demoner vid starttiden.

Olika skalskript sparas i katalogen som är /etc/init.d. Dessa skript används för att starta och stoppa demoner.

Linux-processer

Vanligtvis instansieras demoner som processer. Dessa processer är de körande eller exekverande instanserna av ett program. En process hanteras av kärnan som är operativsystemets kärna och den tilldelar alla speciella processidentifikationsnummer.

I Linux finns det huvudsakligen tre vanliga typer av processer som är följande:

  • Omgång
  • Interaktiv
  • Demon

Batchprocessen skickas via en processkö och är inte relaterad till kommandoraden. Dessa processer är väl lämpade för att utföra återkommande operationer om användningen av systemet är låg.

Den interaktiva processen exekveras interaktivt av användaren på kommandoraden.

Demonen identifieras av ett system som de processer vars överordnade process innehåller ett PID på ett.

Alltid, det definierar processen init. Init-processen är den initiala processen som påbörjas när ett Linux-system startas och den förblir över systemet tills systemet stängs av.

Init kan anta vilken typ av process som helst vars överordnade process avslutas eller dör utan att vänta på statusen för den underordnade processen.

normala former

Så, den grundläggande tekniken för att starta demonen är att dela eller gaffla två eller en gång och även att möjliggöra för överordnade processer att avslutas medan den underordnade processen börjar implementera sin allmänna funktion.

Demonernas historia

Några få demoner publiceras av init-skript i System V. Dessa är skript eller korta program som kan köras automatiskt om systemet startar. De kan antingen reproduceras med intervaller eller överleva under sessionens varaktighet.

Nu startas flera demoner endast efter behov och av en demon (xinetd) istället för att köras kontinuerligt. Xinetd är känd som TCP/IP superserver.

Den startas vid starttidpunkten och den lyssnar också på olika portar som är tilldelade de processer som listas i konfigurationsfilen, t.ex. /etc/xinetd.conf eller /etc/inetd.conf.

Manuellt kan några demoner också startas i inkludering för att startas av applikationsprogrammen och operativsystemet. Alla demoner har ett individuellt skript i flera UNIX-liknande operativsystem inklusive Linux med vilket det kan startas om och avslutas.

vad är kataloginlämning

Hanteringen av dessa skript implementeras enligt körnivåer. Körnivån kan definieras som ett drift- eller konfigurationstillstånd för ett system som endast tillåter vissa utvalda processer att vara tillgängliga. Att börja med en distinkt körnivå kan hjälpa till att lösa vissa problem eller problem, inklusive rätta till systemfel.

Nyckelpunkter för Daemons

Några viktiga nyckelpunkter för Daemons förklaras nedan:

  • Ordet demon kommer från den grekiska metodologiska demonen. Dessa var övernaturliga varelser som ligger mellan dödliga och gudar och som hade unik makt eller kunskap.
  • 1963 användes termen demon initialt i ett systemsammanhang på banbrytande projektet MAC med hjälp av IBM 7094.
  • Den var inspirerad av demonen för termodynamik och fysik hos Maxwell som var ett abstrakt medel som stödde sorteringsmolekyler med distinkta hastigheter och arbetade outtröttligt i bakgrunden.
  • Efter det användes termen för att beskriva processerna i bakgrunden som fungerade outtröttligt med systemsysslor.
  • Den första daemondatorn var ett program som skapade bandbackuper automatiskt.
  • Denna term användes för datoranvändning. Det var som en kort form för Disk and Execution MONitor.
  • Olika program som kallas tjänster demonerna fungerar på Microsoft Windows operativsystem. Men ordet demon används ibland också med dessa system.

Implementering av Daemons

Unix som Systems

Processen för Unix-liknande system är en demon om dess överordnade process dör och denna demon utses till init-processen (process nummer 1) som överordnad process och innehåller ingen styrande terminal på det strikt tekniska sättet.

En demon kan dock vara vilken bakgrundsprocess som helst oavsett om initprocessen är underordnad eller inte.

Den grundläggande tekniken för en procedur blir en demon på UNIX-liknande system när proceduren påbörjas via kommandoraden eller startskript som System Starter-skriptet eller init-skriptet, involverar:

  • Ta bort onödiga variabler genom miljön valfritt.
  • Körs som bakgrundsuppgift genom att avsluta och klaffa. Det tillåter demonens förälder (start- eller skalprocess) att ta emot utgångsmeddelanden och fortsätta den normala exekveringen.
  • Att lossa genom den anropande sektionen, utförd av en individuell operation vanligtvis, setsid():
    • Dissociera genom den tty-kontrollerande.
    • Göra en nyare session och bli sessionens sessionsledare.
    • Att bli ledare för processgruppen.
  • Om demonen vill försäkra sig om att den inte skulle ärva en ny tty-kontroll, kan den avslutas och splittras igen. Det betyder att det inte längre är någon sessionsledare i den nya sessionen och inte kan ärva någon tty-kontroll.
  • Ställ in den aktuella arbetskatalogen som rotkatalogen så att processen inte tar någon katalog i bruk som kan vara över ett monterat filsystem.
  • Ändra umasken till 0 för att tillåta create(), open() och andra anrop av operativsystem för att underlätta deras behörighetsmask och inte förlita sig på alla anropande umask.
  • Omdirigering av filbeskrivningarna 0, 1 och 2 för standardströmmarna (stderr, stdout, stdin) till en loggfil eller /dev/null, och stängning av alla andra deskriptorfiler som förvärvats genom den överordnade processen.

När processen börjar med en superserverdemon som systemd, launchd eller inetd, kommer superservern att implementera dessa funktioner för denna process, förutom de gamla demonerna som inte transformerats till att köras under systemd och beskrivs som multitrådade och Type=forking datagramservrar på inetd.

gimp ta bort vattenstämpel

MS-DOS

Det demonliknande programmet kördes som terminate and stay resident (kort sagt TSR) programvara inuti Microsoft DOS-plattformen.

Windows NT

Program som kallas Windows-tjänster implementerar funktionerna för dessa demoner på Microsoft Windows NT-system. De körs som processer och interagerar vanligtvis inte med mus, tangentbord och bildskärm. De kan startas med hjälp av operativsystemet vid uppstartstillfället.

Windows-tjänster stoppas, startas och konfigureras manuellt av kontrollpanelen (ett dedikerat konfigurations-/kontrollprogram), PowerShell-skriptsystemet eller kommandona net stop och net start, servicekontrollelementet i servicekontrollhanteraren.

Alla Windows-applikationer kan dock implementera ansvaret för en demon inte bara som en tjänst och några Windows-demoner innehåller möjligheten att köra som den normala processen.

Klassiskt macOS och Mac OS

Olika valfria tjänster och funktioner underlättades av de filer som laddades vid uppstarten och som återuppbyggde operativsystemet på det klassiska Mac OS.

Dessa kallades kontrollpaneler och systemtillägg. De senare versionerna av standard Mac OS utökade dessa med helt nya ansiktslösa bakgrundsprogram.

Dessa applikationer är vanliga applikationer som körs i bakgrunden. Dessa angavs fortfarande som vanliga systemtillägg för användaren.

macOS är ett Unix-system och det använder demoner. MacOS tillämpar termen för tjänsten för att utse programvara som implementerar funktioner som väljs via tjänstermenyn istället för att tillämpa den termen som Windows gör för demoner.

Typiska demonsfunktioner

  • Utför schemalagda åtgärder som cron.
  • Övervaka system som RAID-array eller hårddisktillstånd.
  • Svara på nätverkets begäran och öppna nätverksporten (som port 80).

Hur startar, startar vi om eller stoppar demoner för en skalprompt?

Vi måste tillämpa deras servicekommandon som nedan:

 service daemon-name-here start service daemon-name-here stop service daemon-name-here restart 

I följande exempel, stjärnor, starta om och stoppa.

 service httpd start service httpd stop service httpd restart 

Hur kontrollerar vi listan över varje demon som körs?

För att kontrollera statusen för varje installerad demon, skriv:

 service - -status-all 

Planerar vår Daemon

Vilken demon ska göra?

Demonen måste implementera en sak och implementera den väl. Det där kan vara så komplicerat som att hantera många brevlådor över mer än en domän eller så enkelt som att ringa sendmail för att skicka ut det till en administratör och ange en rapport.

Vi måste ha en bättre uppfattning om vad en demon måste göra i alla fall. Det kommer att interagera med några andra demoner som vi kanske specificerar eller inte. Det är också något annat att undersöka.

switch statement java

Samspel

Demoner får aldrig ha någon kommunikation med användaren direkt via en terminal. Varje kommunikation passerar några gränssnittstyper (som vi kanske eller kanske inte behöver specificera), vilket kan vara lika komplicerat som GUI+GTK eller lika enkelt som en individuell uppsättning.

Demonens grundläggande struktur

Daemon måste genomföra lite hushållsarbete på låg nivå för att göra sig redo för det riktiga jobbet när det startar. Det innebär några steg som är följande:

  • Avskaffa en superprocess (förälderprocess)
  • Ändra mask för filläge (umask)
  • Öppna loggar för att skriva
  • Gör ett speciellt sessions-ID (kort SID)
  • Ändra arbetskatalogen (nuvarande) till en säker plats
  • Stäng klassificeringsbeskrivningar av filen
  • Ange den ursprungliga demonkoden

Lista över demontjänster för Unix- och Linuxliknande system

    anakron:Den kör fördröjda cron-åtgärder vid starttiden.amd:Det står för Auto Mount Daemon.etc:Den utför jobb som står i kö med hjälp av at-verktyget.apmd:Det står för Advanced Power Management Daemon.krona:Det är en demon för uppgiftsschemaläggning.autofs:Det hjälper automounter-demonen som tillåter avmontering och montering av enheter över efterfrågan.dhcpd:Det står för Dynamic Host Configuration Protocol. Det är också en Internet Bootstrap Protocol Server.cupsd:Det står för CUPS printer daemon.ftpd:Det står för FTP Server Daemon.httpd:Det är en webbserverdaemon.gated:Den kan dirigera demonerna som ersätter egpup och dirigera och hantera mer än ett routingprotokoll.lpd:Det står för Line Printer Daemon.imapd:Det är imap-serverns demon.inetd:Det står för Internet Superserver Daemon.memchached:Det är en i minnet distribuerad objektcachedemon.mysql:Det är en databasserverdemon.monterad:Det är en bergsdemon.nfsd:Det står för Network File Sharing Daemon.som heter:Det är en DNS-serverdemon.nflock:Den används för att starta och stoppa låstjänsterna för nfs-filer.ntpd:Det står för Network Time Protocol service daemon.nmbd:Det står för Network Message Block Daemon.postgresql:Det är en databasserverdemon.postfix:Det är en posttransportagent och används som ersättning för Sendmail.rpcbind:Det står för Remote Procedure Call Bind Daemon.dirigerad:Den hanterar routingtabeller.smbd:Det är en Samba Daemon.skicka brev:Det är en e-postöverföringsagent-demon.smtpd:Det står för Simple Mail Transfer Protocol Daemon.bläckfisk:Det är en webbsida som cachar proxyserverdemonen.snmpd:Det står för Simple Network Management Protocol Daemon.synk:Det kan hålla olika filsystem synkroniserade tillsammans med systemminnet.sshd:Det är en Secure Shell Server Daemon.syslogd:Det står för system logging daemon.telnetd:Det är en Telnet Server Daemon.tcpd:Den har ett serviceomslag som kan begränsa behörigheten till inetd-baserade tjänster från hosts.deny och hosts.allow.vsftpd:Det står för Very Secure FTP Daemon.webbmin:Det är en webbaserad administrationsserverdemon.xntd:Det är en Network Time Server Daemon.xinetd:Det är en Enhanced Internet Superserver Daemon.