logo

Linux Daemon

Hva er en demon?

En daemon er et slags program over UNIX-lignende OS som kjøres i bakgrunnen diskret, i stedet for ved direkte tilgang til en bruker. Den venter på å bli utløst av utseendet til en bestemt tilstand eller hendelse.

Vanligvis kjører UNIX-lignende systemer en rekke demoner, først og fremst for å imøtekomme forespørsler om tjenester gjennom andre systemer på nettverket, for maskinvareaktivitet og for å svare på andre programmer også.

Eksempler på forhold eller handlinger som kan aktivere demoner i aktiviteten kan være en bestemt dato eller klokkeslett, passering av et beskrevet tidsintervall, mottak av en nettforespørsel eller e-post opprettet fra en bestemt kommunikasjonslinje, og en fil som lander i en bestemt katalog.

rekha alder

Det er ikke obligatorisk at en gjerningsmann for en tilstand eller handling er kjent for at demonen lytter.

Imidlertid vil programmer ofte implementere en handling bare fordi de er kjent for at den ville vekke en demon implisitt.

En demon kalles også bakgrunnsprosesser. Det er et UNIX- eller Linux-program som kjøres i bakgrunnen. Nesten hver demon inneholder navn som slutter med 'd' bokstaven. For eksempel, sshd, dette administrerer tilkoblinger av SSH-fjerntilgang, eller httpd-daemonen som administrerer Apache-serveren. Ofte starter Linux demoner ved starttidspunktet.

Ulike shell-skript lagres i katalogen som er /etc/init.d. Disse skriptene brukes til å starte og stoppe demoner.

Linux-prosesser

Vanligvis blir demoner instansiert som prosessene. Disse prosessene er de kjørende eller utførende forekomstene av et program. En prosess håndteres av kjernen som er operativsystemets kjerne, og den tildeler alle de spesielle prosessidentifikasjonsnumrene.

I Linux er det hovedsakelig tre vanlige typer prosesser som er som følger:

  • Parti
  • Interaktiv
  • Daemon

Batchprosessen sendes gjennom en prosesskø og er ikke relatert til kommandolinjen. Disse prosessene er godt egnet til å utføre gjentakende operasjoner hvis bruken av systemet er lav.

java stabler

Den interaktive prosessen utføres interaktivt av brukeren på kommandolinjen.

Daemonen identifiseres av et system som de prosessene hvis overordnede prosess inneholder en PID på én.

Alltid, det definerer prosessen init. Init-prosessen er den første prosessen som startes når et Linux-system startes opp og den forblir over systemet til systemet slås av.

Init kan ta i bruk alle typer prosesser hvis overordnede prosess avsluttes eller dør uten å vente på statusen til den underordnede prosessen.

Så, den grunnleggende teknikken for å starte demonen er å dele eller gaffel to ganger eller én gang, og gjør det også mulig for foreldreprosessene å avslutte mens underordnet prosessen begynner å implementere sin generelle funksjon.

Demoners historie

Noen få demoner publiseres av init-skript fra System V. Dette er skript eller korte programmer som kan kjøres automatisk hvis systemet starter opp. De kan enten reproduseres med intervaller eller overleve under øktens varighet.

Nå startes flere demoner bare etter behov og av en demon (xinetd) i stedet for å kjøres kontinuerlig. Xinetd er kjent som TCP/IP superserver.

Den startes på starttidspunktet, og den lytter også til forskjellige porter som er tilordnet de prosessene som er oppført i konfigurasjonsfilen, dvs. /etc/xinetd.conf eller /etc/inetd.conf.

Manuelt kan noen få demoner også startes i inkludering for å bli lansert av applikasjonsprogrammene og operativsystemet. Alle demonene har et individuelt skript i flere UNIX-lignende operativsystemer inkludert Linux som det kan startes på nytt og avsluttes med.

Administrasjonen av disse scrips implementeres i henhold til runlevels. Kjørenivået kan defineres som en drifts- eller konfigurasjonstilstand for et system som bare tillater noen utvalgte prosesser tilgjengelig. Å starte med et distinkt kjørenivå kan støtte å løse visse problemer eller problemer, inkludert å rette opp systemfeil.

Nøkkelpunkter for demoner

Noen viktige nøkkelpunkter for Daemons er forklart nedenfor:

  • Ordet demon er hentet fra den greske metodedemonen. Dette var overnaturlige vesener som ligger mellom dødelige og guder og som hadde unik makt eller kunnskap.
  • I 1963 ble begrepet daemon opprinnelig brukt i en systemkontekst på banebrytende prosjektet MAC ved hjelp av IBM 7094.
  • Den var inspirert av demonen for termodynamikk og fysikk til Maxwell, som var et abstrakt middel som støttet sorteringsmolekyler med distinkte hastigheter og arbeidet i bakgrunnen utrettelig.
  • Etter det ble begrepet brukt for å beskrive prosessene i bakgrunnen som fungerte utrettelig for å implementere systemarbeid.
  • Den første daemon-datamaskinen var et program som opprettet tape backup automatisk.
  • Dette begrepet ble brukt for datamaskinbruk. Det var som en kort form for Disk and Execution MONitor.
  • Ulike programmer kalt tjenester som daemonene fungerer på Microsoft Windows-operativsystemet. Imidlertid blir ordet daemon også noen ganger brukt med disse systemene.

Implementering av Daemons

Unix som Systems

Prosessen til Unix-lignende system er en demon hvis dens overordnede prosess dør og denne demonen blir utnevnt til init-prosessen (nummer 1 prosess) som overordnet prosess og inneholder ingen kontrollerende terminal på den strengt tekniske måten.

En demon kan imidlertid være en hvilken som helst prosess med bakgrunn, enten init-prosessen er barn eller ikke.

oppdaterer java

Den grunnleggende teknikken for en prosedyre blir en demon på UNIX-lignende system når prosedyren startes gjennom kommandolinjen eller oppstartsskript som System Starter-skriptet eller init-skriptet, innebærer:

  • Sletting av unødvendige variabler gjennom miljøet valgfritt.
  • Kjører som bakgrunnsoppgaven ved å gå ut og gaffel. Den lar forelderen til demonen (oppstart eller skallprosess) motta avslutningsvarsler og fortsette den normale utførelsen.
  • Frakobling gjennom påkallingsseksjonen, utført ved en individuell operasjon vanligvis, setsid():
    • Dissosiere gjennom tty kontrollerende.
    • Lage en nyere økt og bli øktens leder.
    • Å bli leder for prosessgruppen.
  • Hvis demonen ønsker å forsikre seg om at den ikke vil arve en ny tty-kontroll, kan den gå ut og gaffel igjen. Det betyr at det ikke lenger er noen sesjonsleder inne i den nye økten og ikke kan arve noen tty-kontroll.
  • Angi gjeldende arbeidskatalog som rotkatalog slik at prosessen ikke tar noen katalog i bruk som kan være over et montert filsystem.
  • Endre umasken til 0 for å tillate create(), open() og andre anrop fra operativsystemet for å lette deres tillatelsesmaske og ikke stole på alle anroperens umask.
  • Omdirigere filbeskrivelsene 0, 1 og 2 for standardstrømmene (stderr, stdout, stdin) til en loggfil eller /dev/null, og lukking av annenhver deskriptorfil som er anskaffet gjennom den overordnede prosessen.

Når prosessen starter av en hvilken som helst superserver-demon som systemd, launchd eller inetd, vil superserveren implementere disse funksjonene for denne prosessen, bortsett fra de gammeldagse-demonene som ikke er transformert til å kjøre under systemd og beskrevet som multithreaded og Type=forking datagramservere på inetd.

scan.next java

MS-DOS

Det daemonlignende programmet ble utført som terminate and stay resident (kort sagt TSR) programvare inne i Microsoft DOS-plattformen.

Windows NT

Programmer kjent som Windows-tjenester implementerer funksjonene til disse demonene på Microsoft Windows NT-systemene. De kjøres som prosesser og samhandler vanligvis ikke med musen, tastaturet og skjermen. De kan bli lansert ved hjelp av operativsystemet ved oppstart.

Windows-tjenester stoppes, startes og konfigureres manuelt av kontrollpanelet (et dedikert konfigurasjons-/kontrollprogram), PowerShell-skriptsystemet, eller kommandoer for nettstopp og nettstart, tjenestekontrollelementet i tjenestekontrollbehandlingen.

Enhver Windows-applikasjon kan imidlertid implementere ansvaret til en demon, ikke bare som en tjeneste, og noen få Windows-demoner inneholder muligheten til å kjøre som den normale prosessen.

Klassisk macOS og Mac OS

Ulike valgfrie tjenester og funksjoner ble tilrettelagt av de filene som ble lastet ved oppstartstidspunktet som gjenoppbygger operativsystemet på det klassiske Mac OS.

Disse ble kalt kontrollpaneler og systemutvidelser. De senere versjonene av standard Mac OS utvidet disse med fullstendige ansiktsløse bakgrunnsapplikasjoner.

Disse applikasjonene er vanlige applikasjoner som kjøres i bakgrunnen. Disse ble fortsatt spesifisert som de vanlige systemutvidelsene til brukeren.

macOS er et Unix-system og bruker demoner. MacOS bruker termen for tjenesten for å utpeke programvare som implementerer funksjoner valgt gjennom tjenestemenyen i stedet for å bruke den termen som Windows gjør for demoner.

Typiske demonsfunksjoner

  • Utfør planlagte handlinger som cron.
  • Overvåk systemer som RAID-array eller harddiskhelse.
  • Svar på forespørselen fra nettverket og åpne nettverksporten (som port 80).

Hvordan starter, restarter eller stopper vi demoner for en shell-forespørsel?

Vi må bruke deres tjenestekommandoer som nedenfor:

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

I følgende eksempel, stjerner, start på nytt og stopp.

 service httpd start service httpd stop service httpd restart 

Hvordan sjekker vi listen over hver demon som kjører?

For å sjekke statusen til hver installert demon, skriv inn:

 service - -status-all 

Planlegging Vår Daemon

Hvilken demon skal gjøre?

Daemonen må implementere én ting, og implementere den godt. Den enkelt tingen kan være så komplisert som å håndtere mange postbokser over mer enn ett domene eller så enkelt som å ringe sendmail for å sende den til en administrator og spesifisere en rapport.

Vi må ha en bedre ide om hva en demon må gjøre i alle fall. Det kommer til å samhandle med noen få andre demoner som vi kan spesifisere eller ikke. Det er også noe annet å undersøke.

samlinger java

Interaksjon

Demoner må aldri ha noen kommunikasjon med brukeren direkte fra en terminal. Hver kommunikasjon går forbi noen grensesnittsorteringer (som vi kanskje eller kanskje ikke må spesifisere), som kan være like komplisert som GUI+GTK eller like enkelt som et enkelt sett.

Den grunnleggende strukturen til demonen

Daemon må implementere noen få husarbeid på lavt nivå for å gjøre seg klar for den virkelige jobben når den starter opp. Det innebærer noen trinn som er som følger:

  • Forkaste en superprosess (overordnet prosess)
  • Endre maske for filmodus (umask)
  • Åpne logger for å skrive
  • Lag en spesiell økt-ID (kort SID)
  • Endre arbeidskatalogen (gjeldende) til et sikkert sted
  • Lukk klassifiseringsbeskrivelser av filen
  • Skriv inn original daemon-kode

Liste over demontjenester for Unix- og Linux-lignende systemer

    anachron:Den kjører forsinkede cron-handlinger på oppstartstidspunktet.amd:Det står for Auto Mount Daemon.etc:Den utfører jobber i kø ved å bruke at-verktøyet.apmd:Det står for Advanced Power Management Daemon.krone:Det er en oppgaveplanlegger-demon.autofs:Det hjelper automounter-demonen som tillater av- og påmontering av enheter over etterspørsel.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 rute demonene som erstatter egpup og ruter og administrerer mer enn én rutingprotokoll.lpd:Det står for Line Printer Daemon.imapd:Det er imap-serverdemonen.inetd:Det står for Internet Superserver Daemon.husket:Det er en i minnet distribuert objektbufringsdemon.mysql:Det er en databaseserverdemon.montert:Det er en mount daemon.nfsd:Det står for Network File Sharing Daemon.kalt:Det er en DNS-serverdemon.nflock:Det brukes for å starte og stoppe låsetjenestene til 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 databaseserverdemon.postfix:Det er en posttransportagent og brukes som en erstatning for Sendmail.rpcbind:Det står for Remote Procedure Call Bind Daemon.rutet:Den håndterer rutetabeller.smbd:Det er en Samba Daemon.sendmail:Det er en e-postoverføringsagent-demon.smtpd:Det står for Simple Mail Transfer Protocol Daemon.akkar:Det er en proxy-serverdemon som bufrer nettsider.snmpd:Det står for Simple Network Management Protocol Daemon.syncd:Det kan holde ulike filsystemer synkronisert sammen med systemminnet.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 tjenesteomslag som kan begrense autorisasjonen til inetd-baserte tjenester fra hosts.deny og hosts.allow.vsftpd:Det står for Very Secure FTP Daemon.webmin:Det er en nettbasert administrasjonsserverdemon.xntd:Det er en Network Time Server Daemon.xinetd:Det er en Enhanced Internet Superserver Daemon.