logo

Linux Dæmon

Hvad er en dæmon?

En dæmon er en slags program over UNIX-lignende OS, der kører i baggrunden diskret, i stedet for ved direkte adgang fra en bruger. Den venter på at blive udløst af udseendet af en bestemt tilstand eller begivenhed.

Typisk udfører UNIX-lignende systemer adskillige dæmoner, primært for at imødekomme anmodninger om tjenester gennem andre systemer på netværket, til hardwareaktivitet og for også at svare på andre programmer.

Eksempler på forhold eller handlinger, der kunne aktivere dæmoner i aktiviteten, kan være en bestemt dato eller et bestemt tidspunkt, passage af et beskrevet tidsinterval, modtagelse af en webanmodning eller e-mail oprettet fra en specifik kommunikationslinje og en fil, der lander i en bestemt mappe.

ups koncepter i java

Det er ikke obligatorisk, at en gerningsmand til en tilstand eller handling er kendt for, at dæmonen lytter.

Imidlertid vil programmer ofte implementere en handling, bare fordi de ved, at den implicit ville vække en dæmon.

En dæmon kaldes også baggrundsprocesser. Det er et UNIX- eller Linux-program, der kører inde i baggrunden. Næsten hver dæmon indeholder navne, der slutter med bogstavet 'd'. For eksempel, sshd, dette administrerer forbindelser af SSH-fjernadgang, eller httpd-dæmonen, der administrerer Apache-serveren. Ofte starter Linux dæmoner ved starttidspunktet.

Forskellige shell-scripts gemmes inde i den mappe, der er /etc/init.d. Disse scripts bruges til at starte og stoppe dæmoner.

Linux processer

Sædvanligvis instansieres dæmoner som processerne. Disse processer er de kørende eller eksekverende forekomster af et program. En proces håndteres af kernen, som er operativsystemets kerne, og den tildeler alle de specielle procesidentifikationsnumre.

I Linux er der hovedsageligt tre almindelige typer processer, som er som følger:

  • Parti
  • Interaktiv
  • Dæmon

Batchprocessen sendes gennem en proceskø og er ikke relateret til kommandolinjen. Disse processer er velegnede til at udføre tilbagevendende operationer, hvis brugen af ​​systemet er lav.

java stakke

Den interaktive proces udføres interaktivt af brugeren på kommandolinjen.

Dæmonen identificeres af et system som de processer, hvis overordnede proces indeholder en PID på én.

Det definerer altid processen init. Init-processen er den indledende proces, der påbegyndes, når et Linux-system startes op, og den forbliver over systemet, indtil systemet lukkes ned.

Init'en kan vedtage enhver type proces, hvis overordnede proces afsluttes eller dør uden at vente på status for den underordnede proces.

Så den grundlæggende teknik til at starte dæmonen er at dele eller forgrene sig to gange eller én gang og også gøre det muligt for forældreprocesserne at afslutte, mens den underordnede proces begynder at implementere sin generelle funktion.

Dæmonernes historie

Nogle få dæmoner udgives af init-scripts i System V. Disse er scripts eller korte programmer, der kan køres automatisk, hvis systemet starter op. De kan enten blive gengivet med intervaller eller overleve i sessionsvarigheden.

Nu startes flere dæmoner kun efter behov og af en dæmon (xinetd) i stedet for at køre kontinuerligt. Xinetd er kendt som TCP/IP superserver.

Den startes ved starttidspunktet, og den lytter også til forskellige porte, som er tildelt de processer, der er anført i konfigurationsfilen, dvs. /etc/xinetd.conf eller /etc/inetd.conf.

Manuelt kunne nogle få dæmoner også startes i inklusion for at blive lanceret af applikationsprogrammerne og operativsystemet. Alle dæmoner har et individuelt script i flere UNIX-lignende OS, inklusive Linux, hvormed det kan genstartes og afsluttes.

Styringen af ​​disse scripts implementeres i henhold til runlevels. Kørselsniveauet kan defineres som en drifts- eller konfigurationstilstand for et system, der kun tillader nogle udvalgte processer at være tilgængelige. At starte ind i et særskilt runlevel kan understøtte løsning af visse problemer eller problemer, herunder at rette systemfejl.

Nøglepunkter for Dæmoner

Nogle vigtige nøglepunkter i Daemons er forklaret nedenfor:

  • Ordet dæmon er taget fra den græske metodedæmon. Disse var overnaturlige væsener, der ligger mellem dødelige og guder, og som besad enestående magt eller viden.
  • I 1963 blev udtrykket daemon oprindeligt anvendt i en systemkontekst på banebrydende projekt MAC ved hjælp af IBM 7094.
  • Det var inspireret af Maxwells dæmon for termodynamik og fysik, som var et abstrakt middel, der understøttede sorteringsmolekyler med forskellige hastigheder og arbejdede utrætteligt i baggrunden.
  • Derefter blev udtrykket brugt til at beskrive de processer i baggrunden, som fungerede utrætteligt ved at implementere systemets pligter.
  • Den første dæmon-computer var et program, der lavede båndsikkerhedskopier automatisk.
  • Dette udtryk blev brugt til computerbrug. Det var som en kort form for Disk and Execution MONitor.
  • Forskellige programmer kaldet tjenester, som dæmonerne fungerer på Microsoft Windows-operativsystemet. Ordet daemon bliver dog også nogle gange anvendt med disse systemer.

Implementering af Daemons

Unix-lignende systemer

Processen med Unix-lignende system er en dæmon, hvis dens overordnede proces dør, og denne dæmon bliver udpeget til init-processen (nummer 1-proces) som overordnet proces og indeholder ingen kontrollerende terminal på den strengt tekniske måde.

En dæmon kan dog være en hvilken som helst baggrundsproces, uanset om init-processen er underordnet eller ej.

gøre script eksekverbart

Den grundlæggende teknik for en procedure bliver en dæmon på UNIX-lignende system, når proceduren påbegyndes gennem kommandolinjen eller opstartsscripts som System Starter-scriptet eller init-scriptet, involverer:

  • Sletning af unødvendige variabler gennem miljøet valgfrit.
  • Kører som baggrundsopgaven ved at afslutte og forgrene. Det giver dæmonens forælder (start- eller shellproces) mulighed for at modtage afslutningsmeddelelser og fortsætte den normale udførelse.
  • Frigørelse gennem den påkaldende sektion, udført ved en individuel handling, normalt setsid():
    • Dissociering gennem den tty kontrollerende.
    • At lave en nyere session og blive sessionens leder.
    • At blive leder af procesgruppen.
  • Hvis dæmonen ønsker at sikre sig, at den ikke vil arve en ny tty-kontrol, kan den forlade og forgrene sig igen. Det betyder, at det ikke længere er nogen sessionsleder i den nye session og ikke kan arve nogen tty controlling.
  • Indstilling af den aktuelle arbejdsmappe som rodmappen, så processen ikke tager nogen mappe i brug, der kan være over et monteret filsystem.
  • Ændring af umasken til 0 for at tillade create(), open() og andre opkald fra operativsystemet for at lette deres tilladelsesmaske og ikke stole på alle kalderens umask.
  • Omdirigering af filbeskrivelserne 0, 1 og 2 for standardstrømmene (stderr, stdout, stdin) til en logfil eller /dev/null, og lukning af hver anden deskriptorfil, der er erhvervet gennem den overordnede proces.

Når processen starter med en hvilken som helst superserver-dæmon som systemd, launchd eller inetd, implementerer superserveren disse funktioner for denne proces, undtagen de gamle dæmoner, der ikke er transformeret til at udføre under systemd og beskrives som multithreaded og Type=forking datagramservere efter inetd.

java parse streng til int

MS-DOS

Det dæmonlignende program blev udført som terminate and stay resident (kort sagt TSR) software inde i Microsoft DOS-platformen.

Windows NT

Programmer kendt som Windows-tjenester implementerer funktionerne i disse dæmoner på Microsoft Windows NT-systemerne. De udføres som processer og interagerer normalt ikke med musen, tastaturet og skærmen. De kan blive lanceret ved hjælp af operativsystemet på starttidspunktet.

Windows-tjenesterne stoppes, startes og konfigureres manuelt af kontrolpanelet (et dedikeret konfigurations-/kontrolprogram), PowerShell-scriptsystemet eller netstop- og netstartkommandoer, servicecontrollerelementet i servicekontrolstyringen.

Enhver Windows-applikation kan dog implementere en dæmons ansvar, ikke bare som en tjeneste, og nogle få Windows-dæmoner indeholder muligheden for at udføre som den normale proces.

Klassisk macOS og Mac OS

Forskellige valgfrie tjenester og funktioner blev lettet af de filer, der blev indlæst ved opstartstidspunktet, og som genopbygger operativsystemet på det klassiske Mac OS.

Disse blev kaldt kontrolpaneler og systemudvidelser. De senere versioner af standard Mac OS udvidede disse med helt nye ansigtsløse baggrundsapplikationer.

Disse applikationer er almindelige applikationer, der køres i baggrunden. Disse blev stadig angivet som de almindelige systemudvidelser til brugeren.

macOS er et Unix-system, og det bruger dæmoner. MacOS anvender termen for tjenesten til at udpege software, der implementerer funktioner valgt gennem servicemenuen i stedet for at anvende dette udtryk, som Windows gør for dæmoner.

Typiske dæmoner funktioner

  • Udfør planlagte handlinger som cron.
  • Overvåg systemer som RAID-array eller harddisktilstand.
  • Svar på anmodningen fra netværket, og åbn netværksporten (som port 80).

Hvordan starter, genstarter eller stopper vi dæmoner for en shell-prompt?

Vi skal anvende deres servicekommandoer som nedenfor:

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

I det følgende eksempel, stjerner, genstart og stop.

 service httpd start service httpd stop service httpd restart 

Hvordan tjekker vi listen over hver kørende dæmon?

For at kontrollere status for hver installeret dæmon, skriv:

 service - -status-all 

Planlægning af vores dæmon

Hvilken dæmon vil gøre?

Dæmonen skal implementere én ting og implementere den godt. Den eneste ting kan være lige så kompliceret som at håndtere en masse postkasser over mere end ét domæne eller så let som at ringe til sendmail for at sende den til en administrator og angive en rapport.

Vi skal have en bedre idé om, hvad en dæmon skal gøre under alle omstændigheder. Det kommer til at interagere med et par andre dæmoner, som vi måske angiver eller ej. Det er også noget andet at undersøge.

liste på java

Interaktion

Dæmoner må aldrig have nogen kommunikation med brugeren direkte via en terminal. Hver kommunikation går forbi nogle få grænseflader (som vi måske eller måske ikke skal specificere), som kan være lige så kompliceret som GUI+GTK eller så let som et individuelt sæt.

Den grundlæggende struktur af daemon

Daemon er nødt til at implementere et par husarbejde på lavt niveau for at blive klar til det rigtige job, når det starter op. Det involverer nogle trin, som er som følger:

  • Forkaste en super proces (forælderproces)
  • Rediger maske for filtilstand (umask)
  • Åbn logfiler for at skrive
  • Lav et særligt sessions-id (kort SID)
  • Rediger arbejdsbiblioteket (nuværende) til et sikkert sted
  • Luk klassificeringsbeskrivelser af filen
  • Indtast den originale dæmonkode

Liste over dæmontjenester til Unix- og Linux-lignende systemer

    anakron:Den kører forsinkede cron-handlinger på opstartstidspunktet.amd:Det står for Auto Mount Daemon.etc:Det udfører job i kø ved at anvende at-værktøjet.apmd:Det står for Advanced Power Management Daemon.krone:Det er en opgaveplanlægningsdæmon.autofs:Det hjælper automounter-dæmonen, der tillader af- og påmontering af enheder efter behov.dhcpd:Det står for Dynamic Host Configuration Protocol. Det er også en Internet Bootstrap Protocol Server.cupsd:Det står for CUPS printer daemon.ftpd:Det står for FTP Server Daemon.httpd:Det er en Web Server Daemon.gated:Den kan dirigere de dæmoner, der erstatter egpup, og dirigere og administrere mere end én routingprotokol.lpd:Det står for Line Printer Daemon.imapd:Det er imap-serverens dæmon.inetd:Det står for Internet Superserver Daemon.husket:Det er en i hukommelsen distribueret objektcache-dæmon.mysql:Det er en databaseserver-dæmon.monteret:Det er en bjergdæmon.nfsd:Det står for Network File Sharing Daemon.som hedder:Det er en DNS-server-dæmon.nflock:Det anvendes til at starte og stoppe låsetjenesterne for nfs-filer.ntpd:Det står for Network Time Protocol service daemon.nmbd:Det står for Network Message Block Daemon.postgresql:Det er en databaseserver-dæmon.postfix:Det er en posttransportagent og bruges som erstatning for Sendmail.rpcbind:Det står for Remote Procedure Call Bind Daemon.dirigeret:Den håndterer rutetabeller.smbd:Det er en Samba Dæmon.Send mail:Det er en mailoverførselsagent-dæmon.smtpd:Det står for Simple Mail Transfer Protocol Daemon.blæksprutte:Det er en web-side caching proxy-server-dæmon.snmpd:Det står for Simple Network Management Protocol Daemon.synkronisering:Det kan holde forskellige filsystemer synkroniseret sammen med systemhukommelsen.sshd:Det er en Secure Shell Server Daemon.syslogd:Det står for system logging daemon.telnetd:Det er en Telnet Server Daemon.tcpd:Den har en serviceindpakning, der kan begrænse tilladelsen til inetd-baserede tjenester fra hosts.deny og hosts.allow.vsftpd:Det står for Very Secure FTP Daemon.webmin:Det er en webbaseret administrationsserver-dæmon.xntd:Det er en Network Time Server Daemon.xinetd:Det er en Enhanced Internet Superserver Daemon.