Ker je operacijski sistem Linux označen kot večopravilni operacijski sistem, je demon po definiciji program, ki se neprekinjeno izvaja v ozadju. Skratka, izvajanje tega postopka ni odvisno od interakcije aktivnega uporabnika s sistemom. Običajni sistemski uporabnik ne more nadzorovati periodičnega izvajanja demonskega procesa.
Konvencija o poimenovanju, ki določa večino demonskih procesov, je enočrkovna "pripona" d. Ta konvencija poimenovanja omogoča razlikovanje med običajnimi sistemskimi procesi in procesi, ki jih poganjajo demoni. Na primer, sshd je demonski postopek, odgovoren za upravljanje dohodnihSSH povezave. Drug primer postopka demona jesyslogd. Odgovorna je za sistem za beleženje sistema Linux.
V okolju Linux se zagon demonov zažene ob zagonu. Ker je sistem Linux popoln klon Unixa, se postopek init šteje za nadrejeni proces demona. Če želite zagnati in ustaviti demone v vašem operacijskem sistemu Linux, morate najprej dostopati do/ etc / init.d skripte v vašem OS.
Skupne funkcije demonov
- Vašemu sistemu omogoča, da se pravilno odzove na omrežne zahteve, tako da vsako zahtevo poveže z združljivimi omrežnimi vrati. Tipična omrežna vrata, s katerimi upravljajo demoni, so vrata 80.
- Demoni omogočajo izvajanje ali izvajanje načrtovanih sistemskih nalog. Pokliče se demon, odgovoren za to posebno nalogo cron. Ustvaril bo a cron delo ki bo urejal periodično izvajanje načrtovanih nalog.
- Daemoni prav tako ponujajo neprecenljiv prispevek k spremljanju delovanja vašega sistema. Na primer, lahko preverijo matriko RAID ali stanje trdega diska.
Uporabni demoni storitve Linux
- amd: Auto Mount Daemon
- anacron: Izvedba zapoznelih nalog cron v času zagona
- apmd: Daemon za napredno upravljanje porabe energije
- atd: Uporablja funkcionalnost orodja za izvajanje opravil v čakalni vrsti
- samodejni: sodeluje z demonom automounter, da olajša namestitev in demontažo sistemskih naprav na zahtevo
- crond: demon, ki ureja razporejanje opravil
- cupsd: demon, ki ureja tiskanje CUPS
- DHCP: demon za internetni strežnik protokola Bootstrap in protokol za dinamično konfiguracijo gostitelja.
- zaprta: usmerjevalni demon, odgovoren za več protokolov usmerjanja. Nadomešča usmerjene in egpup
- httpd: demon, ki se ukvarja s spletnimi strežniki, kot je Apache
- inetd: demon, povezan z Internet Superserver
- imapd: demon za strežnik IMAP
- lpd: Daemon za linijski tiskalnik
- memcached: demon predpomnjenja predmetov, ki je razdeljen v pomnilniku
- mountd: mount daemon
- MySQL: demon za strežnik baz podatkov MySQL
- imenovan: demon za strežnik DNS
- nfsd: Daemon za omrežno skupno rabo datotek
- nfslock: Ker je nfsd povezan s storitvami za zaklepanje datotek, lahko ta demon te storitve zažene in ustavi.
- nmbd: demon za blok omrežnih sporočil
- ntpd: demon za storitev Network Time Protocol
- postfix: demon, ki služi kot agent za prevoz pošte. To je alternativa sendmailu.
- Postgresql: demon za strežnik zbirke podatkov Postgres
- preusmerjen: demon za upravljanje usmerjevalnih tabel
- rpcbind: demon, povezan z vezavo klica oddaljenega postopka
- Pošlji pošto: demon, ki služi kot agent za prenos pošte
- smbd: demon za strežnik Samba SMB
- smtpd: demon za Simple Protocol Transfer Protocol
- snmpd: demon za Simple Network Management Protocol
- lignji: demon, povezan s strežnikom proxy za predpomnjenje spletnih strani
- sshd: demon, povezan s strežnikom Secure Shell
- sinhronizacija: demon za sinhronizacijo sistemskega pomnilnika s sistemskimi datotekami
- Syslog: demon, ki izvaja beleženje sistema
- tcpd: ta ovoj za storitve demona izvaja protokole omejitve dostopa, povezane s storitvami demona, ki temeljijo na inetd. Te omejitve izvaja skozi gostitelji.dovolite in gostitelji.zanikati.
- Telnetd: demon za strežnik telnet
- vsftpd: demon za zelo varen protokol za prenos datotek
- webmin: demon za spletni skrbniški strežnik
- xinetd: demon, povezan z izboljšanim nadzornikom interneta
- xntd: demon za strežnik Network Time
Ne glede na to, ali ste začetnik, vmesnik ali strokovnjak v svetu operacijskega sistema Linux, se med napredovanjem svojih veščin in znanja v tem okolju OS ne boste nikoli seznanili z nobenim od zgoraj naštetih demonov.
Zagon / zaustavitev / ponovni zagon demonov: pristop, ki temelji na terminalu
Zdaj, ko imate seznam uporabnih demonov Linuxa, ki si jih lahko zapomnite in raziščete, morate najprej vedeti, kako te demone zagnati, ustaviti ali znova zagnati. Z zagonom terminala Linux upoštevajte naslednja pravila sintakse, da zaženete, ustavite in znova zaženete demon v vašem operacijskem sistemu Linux.
storitev prednostno-daemon-ime zagon storitev prednostno-daemon-ime stop ponovni zagon storitve-prefer-daemon-name
Zamenjajte prefer-daemon-name sintaksni argument z izbranim imenom demona sistema Linux. Lahko ga izberete s zgoraj poudarjenega seznama demonov, če je aktiven ali je že definiran v vašem sistemu Linux. Na primer, lahko izvedemo praktično uporabo zgornje sintakse tako, da poskusimo zagnati, ustaviti in znova zagnati ademon. Pomaknite se do / etc / init.d imenik na vašem terminalu za seznam razpoložljivih demonov v vašem sistemu Linux.
Naštevanje demonov vaših sistemov Linux
Učinkovitejši način beleženja razpoložljivih demonov v vašem sistemu Linux, namesto da bi se pomaknili na / etc / init.d direktorij je, da z enim ukazom navede vse definirane aktivne in neaktivne demone iz tega imenika. Za dosego tega cilja je učinkovit naslednji ukaz.
$ service -status-all
Pozitivni znaki [+] in negativni [-] pred navedenimi imeni demonov pomenijo, da so aktivni oziroma neaktivni.
Delo z uporabniško določenimi demoni
Za uspešno ustvarjanje in izvajanje uporabniško definiranega demona je treba upoštevati posebna pravila ali protokole. Ti protokoli vam pomagajo v celoti razumeti izvajanje demonov v katerem koli okolju Linux. Tudi demoni so dovolj prilagodljivi, da se prek sistemskih klicev povežejo z moduli jedra. Ta odsek funkcionalnosti demona podpira njegovo interakcijo s strojnimi napravami, kot so dlančniki (Personal Digital Assistants), tiskalniki in izvedljive zunanje krmilne plošče. Gradniki demonov prispevajo tudi k značilni moči in prilagodljivosti operacijskega sistema Linux.
Primerljivo izvedbo demona z uporabo Pythona natančno pokaže in dokumentira Sander Marechal. Pri ustvarjanju tega demona bodite pozorni na vrstni red izvršitve. Prvič, vaš sistem Linux potrebuje namestitev paketov Python za uspešen razvoj demonov. Za namestitev Pythona lahko uporabite naslednji ukaz.
$ sudo apt namestite python3-pip python3-dev
Povezava do avtorske demonske kode Sanderja Marechala ponuja tudi dodelano različico kode Python 3. Pomagalo bi, če bi razmislili o njegovi izvedbi, da bi bolje razumeli, kako delujejo demoni.
Če niste prepričani, ali imate nameščen Python, na terminalu Linux zaženite naslednji ukaz.
$ python3 --verzija
Namen katerega koli demona
Ker je en demon namenjen obravnavi določene naloge, jo mora izvesti do popolnosti. Zadevna naloga je lahko tako preprosta kot ustvarjanje poročila in pošiljanje skrbniku prek sendmaila ali tako zapletena kot upravljanje več domen, povezanih z več nabiralniki. Na neki točki bo moral demon, ki ga boste ustvarili, govoriti z drugimi obstoječimi demoni.
interakcija med uporabnikom in demonom
Priporočljivo je, da uporabnik sistema in ustvarjeni demon neposredno komunicirata. Če je to potrebno za demon, ga ustvarite za komunikacijo z uporabnikom sistema. To komunikacijo lahko olajšate s podobnim vmesnikom GUI. Ta komunikacijska platforma ima lahko GTK + GUI zapletenost ali preprostost nastavitve signala.
Ustvarjanje vašega demona
Številni pristopi podpirajo ustvarjanje demonov. Na primer, z vmesnikom ukazne vrstice lahko demonizirate skript Python, kot sledi:
$ python my_python_script.py &
Avtorsko kodo demona Python3 Sanderja Marechala lahko shranite v datoteko Python in jo demonizirate z zgornjim ukazom. Medtem ko bo zgornji ukaz terminala za vas enostavno ustvaril demon, se boste morali spoprijeti z izzivi, kot so nepredvidljivi izhodi terminala. Ti izzivi so odvisni od tega, kako dobro ste preoblikovali svojo kodo demona Python. Poleg tega zgornji pristop ne podpira dodelitve datotek za zaklepanje PID določenim demonom. Nemogoče je nadzorovati nobenega demona, saj ga bo večina izvedla takoj. Če pa potrebujete le preprost demon, vam bo zgoraj omenjeni pristop dal želene rezultate demona.
Osnovna struktura demona
Preden demon izvede ali izvede predvideno funkcijo, bo moral upoštevati nekaj vnaprej pripravljenih pravil, ki vodijo do njegove izvedbe. Ta pravila si lahko predstavljate kot gospodinjska dela na nizki ravni, ki vodijo do dejanske naloge. Ta pravila lahko razdelite na naslednje korake.
- Najprej se ustvari vilica iz nadrejenega procesa
- Sledi spreminjanje umask (maska načina datoteke)
- Dnevniki so odprti za pisanje
- Ustvari se edinstven SID (ID seje)
- Izvajanje preklopi iz trenutnega delovnega imenika na sekundarno mesto, da se ohrani celovitost datoteke
- Standardni deskriptorji datotek so zaprti
- Izvedba ciljne demonske kode
Več o izvedbah primerov demonov najdete na GitHub.