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