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