logo

Linux demon

Kaj je demon?

Daemon je nekakšen program nad operacijskim sistemom, podobnim UNIX-u, ki se nevsiljivo izvaja v ozadju, namesto ob neposrednem dostopu uporabnika. Čaka, da ga sproži pojav določenega stanja ali dogodka.

Običajno sistemi, podobni UNIX-u, izvajajo številne demone, predvsem za prilagajanje zahtevam po storitvah prek drugih sistemov v omrežju, dejavnosti strojne opreme in tudi za odzivanje na druge programe.

Primeri pogojev ali dejanj, ki bi lahko aktivirali demone v dejavnost, so lahko določen datum ali čas, prehod opisanega časovnega intervala, prejem spletne zahteve ali e-pošte, ustvarjene iz določene komunikacijske linije, in datoteka, ki pristane v določenem imeniku.

javascript print

Ni obvezno, da je povzročitelj stanja ali dejanja znan, da demon posluša.

Vendar bi programi pogosto izvedli dejanje samo zato, ker vedo, da bi implicitno vzbudilo demona.

Daemon se imenuje tudi procesi v ozadju. Je program UNIX ali Linux, ki se izvaja v ozadju. Skoraj vsak demon vsebuje imena, ki se končajo s črko 'd'. Na primer, sshd, to upravlja povezave oddaljenega dostopa SSH, ali httpd daemon, ki upravlja strežnik Apache. Linux pogosto zažene demone ob začetnem času.

Različni lupinski skripti so shranjeni znotraj imenika, ki je /etc/init.d. Ti skripti se uporabljajo za zagon in zaustavitev demonov.

Procesi Linuxa

Ponavadi so demoni instancirani kot procesi. Ti procesi so tekoči ali izvajajoči se primerki programa. Proces upravlja jedro, ki je jedro operacijskega sistema, in dodeljuje vsem posebnim identifikacijskim številkam procesa.

V Linuxu obstajajo predvsem tri običajne vrste procesov, ki so naslednji:

  • Serija
  • Interaktiven
  • Daemon

Paketni postopek se predloži prek čakalne vrste procesov in ni povezan z ukazno vrstico. Ti procesi so zelo primerni za izvajanje ponavljajočih se operacij, če je uporaba sistema majhna.

Interaktivni proces interaktivno izvaja uporabnik v ukazni vrstici.

Daemon identificira sistem kot tisti procesi, katerih nadrejeni proces vsebuje PID ena.

Vedno definira proces init. Postopek inicializacije je začetni proces, ki se začne ob zagonu sistema Linux in ostane v sistemu, dokler se sistem ne zaustavi.

Init lahko sprejme katero koli vrsto procesa, katerega nadrejeni proces se zaključi ali umre, ne da bi čakal na status podrejenega procesa.

polna oblika

Torej je osnovna tehnika za zagon demona dvakrat ali enkrat razdelitev ali razcepitev in tudi omogočanje nadrejenim procesom, da se končajo, medtem ko podrejeni proces začne izvajati svojo splošno funkcijo.

Zgodovina demonov

Nekaj ​​demonov objavijo zagonski skripti sistema V. To so skripti ali kratki programi, ki se lahko samodejno izvedejo, ko se sistem zažene. Lahko se reproducirajo v intervalih ali pa preživijo v času trajanja seje.

Zdaj se več demonov zažene samo po potrebi in z enim demonom (xinetd) namesto neprekinjenega izvajanja. Xinetd je znan kot superstrežnik TCP/IP.

Začne se ob zagonu in posluša različna vrata, ki so dodeljena procesom, navedenim v konfiguracijski datoteki, npr. /etc/xinetd.conf ali /etc/inetd.conf.

Ročno je mogoče zagnati tudi nekaj demonov v vključitvi, ki jih zaženejo aplikacijski programi in operacijski sistem. Vsi demoni imajo posamezen skript v več operacijskih sistemih, podobnih UNIX-u, vključno z Linuxom, s katerim jih je mogoče znova zagnati in prekiniti.

ključ kandidata

Upravljanje teh skriptov se izvaja glede na ravni izvajanja. Raven izvajanja je mogoče definirati kot stanje delovanja ali konfiguracije sistema, ki dovoljuje, da so na voljo samo nekateri izbrani procesi. Zagon na ločeni ravni izvajanja lahko podpira reševanje določenih težav ali težav, vključno z odpravljanjem sistemskih napak.

Ključne točke demonov

Nekaj ​​pomembnih ključnih točk demonov je razloženih spodaj:

  • Beseda daemon je vzeta iz grške metodologije daemon. To so bila nadnaravna bitja, ki ležijo med smrtniki in bogovi in ​​so imela edinstveno moč ali znanje.
  • Leta 1963 je bil izraz demon prvotno uporabljen znotraj sistemskega konteksta na pionirskem projektu MAC s pomočjo IBM 7094.
  • Navdihnil ga je Maxwellov demon termodinamike in fizike, ki je bil abstrakten agent, ki je podpiral razvrščanje molekul z različnimi hitrostmi in neumorno deloval v ozadju.
  • Po tem se je izraz uporabljal za opis procesov v ozadju, ki so neumorno izvajali sistemska opravila.
  • Prvi demonski računalnik je bil program, ki je samodejno ustvaril varnostne kopije trakov.
  • Ta izraz je bil uporabljen za uporabo računalnika. Bila je okrajšava za Disk in Execution MONitor.
  • V operacijskem sistemu Microsoft Windows delujejo različni programi, imenovani storitve demonov. Vendar se beseda demon včasih uporablja tudi za te sisteme.

Implementacija demonov

Unix kot sistemi

Proces sistema, podobnega Unixu, je demon, če njegov nadrejeni proces umre in je ta demon imenovan za init proces (proces številka 1) kot nadrejeni proces in ne vsebuje krmilnega terminala na strogo tehničen način.

Demon pa je lahko kateri koli proces v ozadju, ne glede na to, ali je otrok zagonskega procesa ali ne.

Osnovna tehnika za postopek postane demon v sistemu, podobnem UNIX-u, ko se postopek začne prek ukazne vrstice ali zagonskih skriptov, kot je skript System Starter ali init script, vključuje:

  • Izbirno brisanje nepotrebnih spremenljivk skozi okolje.
  • Izvajanje kot opravilo v ozadju z izhodom in razcepom. Nadrejenemu demonu (procesu zagona ali lupine) omogoča prejemanje obvestil o izhodu in nadaljevanje običajnega izvajanja.
  • Ločitev prek odseka za priklic, ki se običajno izvede s posamezno operacijo, setsid():
    • Ločevanje prek nadzora tty.
    • Ustvariti novejšo sejo in postati vodja te seje.
    • Postati vodja procesne skupine.
  • Če se želi demon prepričati, da ne bo podedoval novega nadzora tty, lahko zapusti in se znova razcepi. To pomeni, da ni več noben vodja seje znotraj nove seje in ne more podedovati nadzora tty.
  • Nastavitev trenutnega delovnega imenika kot korenskega imenika, tako da proces ne prevzame nobenega imenika v uporabi, ki bi lahko bil nad nameščenim datotečnim sistemom.
  • Spreminjanje umaske na 0 za omogočanje create(), open() in drugih klicev operacijskega sistema, da olajšate njihovo masko dovoljenj in se ne zanašate na vse umaske klicatelja.
  • Preusmerjanje deskriptorjev datotek 0, 1 in 2 za standardne tokove (stderr, stdout, stdin) v datoteko dnevnika ali /dev/null in zapiranje vseh drugih datotek deskriptorjev, pridobljenih prek nadrejenega procesa.

Ko se postopek začne s katerim koli demonom superstrežnika, kot je systemd, launchd ali inetd, bo superstrežnik implementiral te funkcije za ta proces, razen tistih demonov starega sloga, ki niso preoblikovani v izvajanje pod systemd in so opisani kot večnitni in Type=forking datagram strežniki na inetd.

mylivecricket.in

MS-DOS

Program, podoben demonu, je bil izveden kot programska oprema za prekinitev in bivanje (na kratko TSR) znotraj platforme Microsoft DOS.

Windows NT

Programi, znani kot storitve Windows, izvajajo funkcije teh demonov v sistemih Microsoft Windows NT. Izvajajo se kot procesi in običajno ne delujejo z miško, tipkovnico in monitorjem. Lahko se zaženejo s pomočjo operacijskega sistema ob zagonu.

Storitve Windows ročno ustavijo, zaženejo in konfigurirajo nadzorna plošča (namenski konfiguracijski/nadzorni program), skriptni sistem PowerShell ali ukazi net stop in net start, element krmilnika storitev upravitelja nadzora storitev.

Vsaka aplikacija Windows pa lahko izvaja odgovornosti demona ne samo kot storitev in nekaj demonov Windows vsebuje možnost izvajanja kot običajnega procesa.

Klasični macOS in Mac OS

Različne neobvezne storitve in funkcije so olajšale tiste datoteke, naložene ob zagonu, ki obnovijo operacijski sistem v klasičnem Mac OS.

Te so se imenovale nadzorne plošče in sistemske razširitve. Kasnejše različice standardnega Mac OS so jih razširile s popolnoma razvitimi aplikacijami v ozadju brez obraza.

Te aplikacije so navadne aplikacije, ki se izvajajo v ozadju. Te so bile še vedno določene kot običajne sistemske razširitve za uporabnika.

macOS je sistem Unix in uporablja demone. MacOS uporablja izraz storitve za označevanje programske opreme, ki izvaja funkcije, izbrane prek menija storitev, namesto da bi uporabil ta izraz, kot to počne Windows za demone.

Tipične funkcije demonov

  • Izvedite načrtovana dejanja, kot je cron.
  • Spremljajte sisteme, kot je polje RAID ali zdravje trdega diska.
  • Odgovorite na zahtevo omrežja in odprite omrežna vrata (na primer vrata 80).

Kako zaženemo, znova zaženemo ali zaustavimo demone za ukazno lupino?

Uporabiti moramo njihove storitvene ukaze, kot je prikazano spodaj:

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

V naslednjem primeru zvezdice, ponovni zagon in zaustavitev.

 service httpd start service httpd stop service httpd restart 

Kako preverimo seznam vsakega delujočega demona?

Če želite preveriti stanje vsakega nameščenega demona, vnesite:

 service - -status-all 

Načrtovanje našega demona

Kaj bo naredil demon?

Demon mora implementirati eno stvar in to dobro implementirati. Ta ena sama stvar je lahko tako zapletena kot obravnavanje številnih nabiralnikov v več kot eni domeni ali tako enostavna kot klicanje sendmaila za pošiljanje skrbniku in določitev poročila.

Imeti moramo boljšo predstavo o tem, kaj mora storiti demon v vsakem primeru. Interagiral bo z nekaj drugimi demoni, ki jih lahko določimo ali ne. Preučiti je treba še nekaj.

oštevilčite abecedo

Interakcija

Demoni nikoli ne smejo komunicirati z uporabnikom neposredno prek terminala. Vsaka komunikacija gre mimo nekaj vrst vmesnikov (ki jih morda moramo določiti ali pa tudi ne), ki so lahko tako zapleteni kot GUI+GTK ali tako enostavni kot posamezni niz.

Osnovna struktura demona

Daemon mora opraviti nekaj gospodinjskih opravil na nizki ravni, da se pripravi na pravo delo, ko se zažene. Vključuje nekaj korakov, ki so naslednji:

  • Razcepite super proces (nadrejeni proces)
  • Spremeni masko datotečnega načina (umask)
  • Odprite dnevnike za pisanje
  • Naredite poseben ID seje (na kratko SID)
  • Spremenite delovni imenik (trenutni) na varno mesto
  • Zaprite deskriptorje razredov datoteke
  • Vnesite originalno kodo demona

Seznam demonskih storitev za Unix in Linux podobne sisteme

    anahron:Zažene zakasnjena dejanja cron ob času zagona.amd:Okrajšava za Auto Mount Daemon.itd:Izvaja opravila v čakalni vrsti z uporabo orodja.apmd:Okrajšava za Advanced Power Management Daemon.crond:To je demon načrtovalca opravil.autofs:Pomaga demonu samodejnega namestitve, ki dovoljuje odpenjanje in pripenjanje naprav na zahtevo.dhcpd:Okrajšava za Dynamic Host Configuration Protocol. Poleg tega je internetni protokolni strežnik Bootstrap.cupsd:Okrajšava za demon tiskalnika CUPS.ftpd:Okrajšava za FTP Server Daemon.httpd:To je demon spletnega strežnika.zaprto:Lahko usmerja demone, ki nadomeščajo egpup in routed ter upravlja več kot en usmerjevalni protokol.lpd:To pomeni Line Printer Daemon.imapd:To je demon strežnika imap.inetd:To pomeni Internet Superserver Daemon.memchached:Je demon za predpomnjenje porazdeljenih objektov v pomnilniku.mysql:Je demon strežnika baze podatkov.mountd:To je mount daemon.nfsd:Okrajšava za Network File Sharing Daemon.imenovan:Je demon strežnika DNS.nflock:Uporablja se za zagon in zaustavitev storitev zaklepanja datotek nfs.ntpd:Okrajšava za storitveni demon omrežnega časovnega protokola.nmbd:Okrajšava za Network Message Block Daemon.postgresql:Je demon strežnika baze podatkov.postfiks:Je posrednik za prenos pošte in se uporablja kot nadomestek za Sendmail.rpcbind:Okrajšava za Remote Procedure Call Bind Daemon.usmerjeno:Obdeluje usmerjevalne tabele.smbd:To je Samba Daemon.Pošlji pošto:Je demon agenta za prenos pošte.smtpd:To pomeni Simple Mail Transfer Protocol Daemon.lignji:Je demon strežnika proxy za predpomnjenje spletnih strani.snmpd:To pomeni Simple Network Management Protocol Daemon.sinhronizacija:Omogoča sinhronizacijo različnih datotečnih sistemov skupaj s sistemskim pomnilnikom.sshd:Je Secure Shell Server Daemon.syslogd:Okrajšava za demon za sistemsko beleženje.telnetd:Je demon strežnika Telnet.tcpd:Ima storitveni ovoj, ki lahko omeji avtorizacijo na storitve, ki temeljijo na inetd, od hosts.deny in hosts.allow.vsftpd:Okrajšava za Very Secure FTP Daemon.webmin:Je spletni demon skrbniškega strežnika.xntd:To je demon omrežnega časovnega strežnika.xinetd:Je izboljšan internetni superserver demon.