logo

Linux demon

Što je demon?

Daemon je vrsta programa preko OS-a sličnog UNIX-u koji se nenametljivo izvršava u pozadini, umjesto izravnog pristupa korisnika. Čeka da bude pokrenut pojavom određenog stanja ili događaja.

Tipično, sustavi slični UNIX-u izvršavaju brojne demone, primarno za prilagodbu zahtjevima za uslugama preko drugih sustava na mreži, hardverskim aktivnostima, kao i za odgovaranje na druge programe.

Primjeri uvjeta ili radnji koje bi mogle aktivirati demone u aktivnosti mogu biti određeni datum ili vrijeme, prolazak opisanog vremenskog intervala, primitak web zahtjeva ili e-pošte stvorene iz određene komunikacijske linije i slijetanje datoteke u određeni direktorij.

koliko je 10 od 60

Nije obavezno da počinitelj stanja ili radnje bude poznat da ga demon sluša.

Međutim, programi bi često implementirali akciju samo zato što se zna da bi to implicitno pokrenulo demona.

Demon se naziva i pozadinski procesi. To je UNIX ili Linux program koji se izvršava u pozadini. Gotovo svaki demon sadrži imena koja završavaju slovom 'd'. Na primjer, sshd, ovo upravlja vezama SSH udaljenog pristupa ili httpd daemon koji upravlja Apache poslužiteljem. Linux često pokreće demone u trenutku pokretanja.

Razne skripte ljuske spremaju se unutar direktorija koji je /etc/init.d. Ove se skripte koriste za pokretanje i zaustavljanje demona.

Linux procesi

Obično se demoni instanciraju kao procesi. Ovi procesi su pokrenute ili izvršne instance programa. Procesom upravlja kernel koji je jezgra operativnog sustava i on dodjeljuje sve posebne identifikacijske brojeve procesa.

U Linuxu uglavnom postoje tri uobičajene vrste procesa koji su sljedeći:

  • Serija
  • Interaktivan
  • Demon

Skupni proces se podnosi kroz red čekanja procesa i nije povezan s naredbenim redkom. Ovi su procesi prikladni za izvođenje ponavljajućih operacija ako je korištenje sustava slabo.

Interaktivni proces interaktivno izvršava korisnik na naredbenom retku.

java tipovi podataka

Daemon identificira sustav poput onih procesa čiji nadređeni proces sadrži PID jedan.

Uvijek definira proces init. Init proces je početni proces koji se pokreće kada se Linux sustav pokrene i ostaje nad sustavom dok se sustav ne ugasi.

Init može prihvatiti bilo koju vrstu procesa čiji roditeljski proces završava ili umire bez čekanja na status djeteta procesa.

Dakle, osnovna tehnika za pokretanje demona je dijeljenje ili račvanje dvaput ili jednom i također omogućavanje roditeljskim procesima da završe dok dijete proces počinje implementirati svoju opću funkciju.

Povijest demona

Nekoliko demona objavljuju init skripte sustava V. To su skripte ili kratki programi koji se mogu automatski pokrenuti ako se sustav pokreće. Mogu se ili reproducirati u intervalima ili preživjeti tijekom trajanja sesije.

Sada se nekoliko demona pokreće samo po potrebi i od strane jednog demona (xinetd) umjesto neprekidnog izvršavanja. Xinetd je poznat kao TCP/IP super poslužitelj.

Pokreće se u trenutku pokretanja i također sluša različite portove koji su dodijeljeni onim procesima navedenim unutar konfiguracijske datoteke, tj. /etc/xinetd.conf ili /etc/inetd.conf.

Ručno se također može pokrenuti nekoliko demona u uključenju kako bi ih pokrenuli aplikacijski programi i operativni sustav. Svi demoni imaju pojedinačnu skriptu u nekoliko OS-a sličnih UNIX-u uključujući Linux s kojom se mogu ponovno pokrenuti i prekinuti.

Upravljanje ovim skriptama implementirano je prema razinama pokretanja. Razina izvođenja može se definirati kao radno ili konfiguracijsko stanje sustava koje dopušta samo nekim odabranim procesima da budu dostupni. Pokretanje na različitoj razini pokretanja može podržati rješavanje određenih problema ili problema uključujući ispravljanje grešaka sustava.

Ključne točke demona

Neke važne ključne točke Daemona objašnjene su u nastavku:

  • Riječ daemon preuzeta je iz grčke metodologije daemon. To su bila nadnaravna bića koja se nalaze između smrtnika i bogova i koja su posjedovala jedinstvenu moć ili znanje.
  • Godine 1963. termin daemon je prvi put primijenjen unutar konteksta sustava na pionirskom projektu MAC uz pomoć IBM-a 7094.
  • Bio je inspiriran demonom termodinamike i fizike Maxwella koji je bio apstraktni agent koji je podržavao razvrstavanje molekula različitih brzina i neumorno radio u pozadini.
  • Nakon toga, termin je korišten za opisivanje procesa pozadine koji su neumorno radili na implementaciji sistemskih poslova.
  • Prvo demonsko računalo bio je program koji je automatski stvarao sigurnosne kopije trake.
  • Ovaj izraz je korišten za korištenje računala. Bio je to skraćeni oblik za Disk i Execution MONitor.
  • U operativnom sustavu Microsoft Windows funkcioniraju različiti programi koji se nazivaju uslugama demona. Međutim, riječ daemon također se ponekad koristi s tim sustavima.

Implementacija demona

Unix poput sustava

Proces sustava nalik Unixu je demon ako njegov nadređeni proces umre i ovaj demon je postavljen kao početni proces (proces broj 1) kao nadređeni proces i ne sadrži upravljački terminal na striktno tehnički način.

Međutim, demon bi mogao biti bilo koji pozadinski proces bez obzira je li init proces dijete ili ne.

Osnovna tehnika za proceduru postaje demon na sustavu sličnom UNIX-u kada se procedura pokrene preko naredbenog retka ili skripti za pokretanje poput skripte za pokretanje sustava ili skripte za pokretanje, uključuje:

java metode
  • Opcionalno brisanje nepotrebnih varijabli kroz okolinu.
  • Izvođenje kao pozadinski zadatak izlaskom i račvanjem. Omogućuje roditelju demona (pokretanje ili proces ljuske) primanje obavijesti o izlazu i nastavak normalnog izvođenja.
  • Odvajanje kroz odjeljak za pozivanje, obično se postiže pojedinačnom operacijom, setsid():
    • Razdvajanje kroz tty kontrolu.
    • Stvaranje novije sesije i postajanje voditeljem te sesije.
    • Postati vođa procesne grupe.
  • Ako demon želi biti siguran da neće naslijediti novu tty kontrolu, mogao bi izaći i ponovno se račvati. To znači da to više nije voditelj sesije unutar nove sesije i ne može naslijediti nikakvu tty kontrolu.
  • Postavljanje trenutnog radnog direktorija kao korijenskog direktorija tako da proces ne uzima nijedan direktorij u upotrebi koji bi mogao biti iznad montiranog datotečnog sustava.
  • Promjena umaska ​​na 0 za dopuštanje create(), open() i drugih poziva operacijskog sustava kako bi se olakšala njihova maska ​​dopuštenja i ne oslanjalo se na sve umaske pozivatelja.
  • Preusmjeravanje deskriptora datoteke 0, 1 i 2 za standardne tokove (stderr, stdout, stdin) u datoteku dnevnika ili /dev/null i zatvaranje svake druge datoteke deskriptora stečene kroz nadređeni proces.

Kada proces započne bilo koji demon super poslužitelja kao što je systemd, launchd ili inetd, super poslužitelj će implementirati te funkcije za ovaj proces, osim onih demona starog stila koji nisu transformirani u izvršavanje pod systemd i opisani su kao multithreaded i Type=forking datagram poslužitelji na inetd.

mysql promijeniti vrstu stupca

MS-DOS

Program nalik demonu izvršen je kao softver za prekidanje i zadržavanje (ukratko TSR) unutar Microsoft DOS platforme.

Windows NT

Programi poznati kao Windows usluge implementiraju funkcije ovih demona na sustavima Microsoft Windows NT. Izvršavaju se kao procesi i obično nemaju interakciju s mišem, tipkovnicom i monitorom. Mogu se pokrenuti uz pomoć operativnog sustava u trenutku pokretanja.

Windows usluge se ručno zaustavljaju, pokreću i konfiguriraju pomoću upravljačke ploče (namjenskog programa za konfiguraciju/kontrolu), sustava skriptiranja PowerShell ili naredbi net stop i net start, elementa kontrolera usluge upravitelja kontrole usluge.

Međutim, svaka Windows aplikacija može implementirati odgovornosti demona ne samo kao servis, a nekoliko Windows demona sadrži opciju izvršavanja kao normalnog procesa.

Klasični macOS i Mac OS

Različite opcijske usluge i značajke bile su olakšane onim datotekama učitanim u vrijeme pokretanja sustava koje ponovno izgrađuju operativni sustav na klasičnom Mac OS-u.

To su se zvale upravljačke ploče i proširenja sustava. Kasnije verzije standardnog Mac OS-a proširile su ih potpuno razvijenim bezličnim pozadinskim aplikacijama.

Ove su aplikacije obične aplikacije koje se izvršavaju u pozadini. Oni su i dalje bili navedeni kao uobičajena proširenja sustava za korisnika.

macOS je Unix sustav i koristi demone. macOS primjenjuje termin usluge za označavanje softvera koji implementira funkcije odabrane putem izbornika usluga umjesto da primjenjuje taj termin kao što to rade Windowsi za demone.

Tipične funkcije demona

  • Izvršite zakazane radnje kao što je cron.
  • Pratite sustave poput RAID polja ili ispravnosti tvrdog diska.
  • Odgovorite na zahtjev mreže i otvorite mrežni priključak (poput priključka 80).

Kako pokrećemo, ponovno pokrećemo ili zaustavljamo demone za odziv ljuske?

Moramo primijeniti njihove servisne naredbe kao u nastavku:

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

U sljedećem primjeru, zvjezdice, ponovno pokretanje i zaustavljanje.

 service httpd start service httpd stop service httpd restart 

Kako možemo provjeriti popis svakog pokrenutog demona?

Za provjeru statusa svakog instaliranog demona upišite:

 service - -status-all 

Planiranje našeg demona

Što će demon učiniti?

Demon mora implementirati jednu stvar, i to dobro implementirati. Ta jedna stvar može biti komplicirana poput rukovanja velikim brojem poštanskih sandučića na više od jedne domene ili laka poput pozivanja sendmaila za slanje administratoru i navođenje izvješća.

Moramo imati bolju ideju o tome što demon mora učiniti u svakom slučaju. Interacirat će s nekoliko drugih demona koje možemo navesti ili ne. To je također nešto drugo za ispitati.

k najbliži susjed

Interakcija

Demoni nikada ne smiju komunicirati s korisnikom izravno putem terminala. Svaka komunikacija prolazi kroz nekoliko vrsta sučelja (koje možemo, a možda i ne moramo specificirati), što može biti komplicirano kao GUI+GTK ili jednostavno kao pojedinačni skup.

Osnovna struktura daemona

Daemon mora izvršiti nekoliko kućanskih poslova niske razine kako bi se pripremio za pravi posao kada se pokrene. To uključuje neke korake koji su sljedeći:

  • Račvanje super procesa (roditeljski proces)
  • Izmijeni masku načina datoteke (umask)
  • Otvorite zapisnike za pisanje
  • Napravite poseban ID sesije (ukratko SID)
  • Izmijenite radni direktorij (trenutni) na sigurno mjesto
  • Zatvorite deskriptore klase datoteke
  • Unesite originalni kod demona

Popis demon usluga za Unix i Linux slične sustave

    anakron:Pokreće odgođene cron akcije u vrijeme pokretanja.amd:Skraćenica je za Auto Mount Daemon.itd.:Izvršava poslove u redu čekanja primjenom alata at.apmd:Skraćenica je za Advanced Power Management Daemon.crond:To je demon planera zadataka.autofs:Pomaže demonu automatskog montiranja dopuštajući demontiranje i montiranje uređaja na zahtjev.dhcpd:Skraćenica je za Dynamic Host Configuration Protocol. Također, to je Internet Bootstrap Protocol Server.cupsd:Skraćenica je za CUPS printer daemon.ftpd:Skraćenica je za FTP Server Daemon.httpd:To je demon web poslužitelja.zatvoren:Može usmjeravati demone koji zamjenjuju egpup i routed i upravljati s više od jednog protokola usmjeravanja.lpd:Skraćenica je za Line Printer Daemon.imapd:To je demon poslužitelja imap.inetd:Skraćenica je za Internet Superserver Daemon.memchached:To je demon za predmemoriranje distribuiranih objekata u memoriji.mysql:To je demon poslužitelja baze podataka.montiran:To je mount demon.nfsd:Skraćenica je za Network File Sharing Daemon.pod nazivom:To je demon DNS poslužitelja.nflock:Primjenjuje se za pokretanje i zaustavljanje usluga zaključavanja nfs datoteka.ntpd:Skraćenica je za demona usluge mrežnog vremenskog protokola.nmbd:Skraćenica je za Network Message Block Daemon.postgresql:To je demon poslužitelja baze podataka.postfiks:To je agent za prijenos pošte i koristi se kao zamjena za Sendmail.rpcbind:Skraćenica je za Remote Procedure Call Bind Daemon.usmjereno:Obrađuje tablice usmjeravanja.smbd:To je Samba Daemon.poslati mail:To je demon agenta za prijenos pošte.smtpd:Skraćenica je za Simple Mail Transfer Protocol Daemon.lignje:To je demon proxy poslužitelja za predmemoriranje web stranica.snmpd:Skraćenica je za Simple Network Management Protocol Daemon.sinkronizacija:Može sinkronizirati razne sustave datoteka zajedno sa sistemskom memorijom.sshd:To je Secure Shell Server Daemon.syslogd:Skraćenica je za demona zapisivanja sustava.telnetd:To je Telnet Server Daemon.tcpd:Ima omotač usluge koji može ograničiti autorizaciju na usluge temeljene na inetd-u od hosts.deny i hosts.allow.vsftpd:To je skraćenica od Very Secure FTP Daemon.webmin:To je demon poslužitelja administracije temeljen na webu.xntd:To je demon mrežnog vremenskog poslužitelja.xinetd:To je poboljšani Internet Superserver Daemon.