logo

Linuxový démon

Čo je to démon?

Démon je druh programu nad OS podobným UNIX, ktorý sa vykonáva na pozadí nenápadne, namiesto priameho prístupu používateľa. Čaká na spustenie objavením sa konkrétneho stavu alebo udalosti.

Systémy podobné UNIXu zvyčajne vykonávajú množstvo démonov, predovšetkým na prispôsobenie sa požiadavkám na služby prostredníctvom iných systémov v sieti, aktivite hardvéru a tiež na odpovedanie na iné programy.

Príkladmi podmienok alebo akcií, ktoré by mohli aktivovať démonov do aktivity, môžu byť konkrétny dátum alebo čas, prejdenie opísaného časového intervalu, prijatie webovej požiadavky alebo e-mailu vytvoreného zo špecifickej komunikačnej linky a pristátie súboru v konkrétnom adresári.

príklady programu python

Nie je povinné, aby bol páchateľ stavu alebo akcie známy, že démon počúva.

Programy však často implementujú akciu len preto, že je im známe, že by to implicitne vyvolalo démona.

Démon sa tiež nazýva procesy na pozadí. Je to UNIX alebo Linux program, ktorý sa vykonáva na pozadí. Takmer každý démon obsahuje mená, ktoré končia písmenom „d“. Napríklad sshd, ktorý spravuje pripojenia vzdialeného prístupu SSH, alebo démon httpd, ktorý spravuje server Apache. Linux často spúšťa démonov v čase spustenia.

Rôzne skripty shellu sú uložené v adresári /etc/init.d. Tieto skripty sa používajú na spustenie a zastavenie démonov.

Procesy Linuxu

Démony sa zvyčajne vytvárajú ako procesy. Tieto procesy sú spustené alebo spustené inštancie programu. Proces riadi jadro, ktoré je jadrom operačného systému a prideľuje všetky špeciálne identifikačné čísla procesu.

V Linuxe existujú hlavne tri bežné druhy procesov, ktoré sú nasledovné:

  • Dávka
  • Interaktívne
  • Démon

Dávkový proces sa odosiela prostredníctvom frontu procesov a nesúvisí s príkazovým riadkom. Tieto procesy sú vhodné na vykonávanie opakujúcich sa operácií, ak je využitie systému nízke.

linuxové súbory

Interaktívny proces je interaktívne vykonávaný užívateľom na príkazovom riadku.

Démon je identifikovaný systémom ako tie procesy, ktorých nadradený proces obsahuje PID s hodnotou jedna.

Vždy definuje inicializáciu procesu. Proces init je počiatočný proces, ktorý sa začína pri spustení systému Linux a zostáva nad systémom, kým sa systém nevypne.

Init môže prijať akýkoľvek typ procesu, ktorého nadradený proces sa ukončí alebo zanikne bez čakania na stav podriadeného procesu.

Takže základnou technikou na spustenie démona je rozdelenie alebo rozvetvenie dvakrát alebo raz a tiež umožnenie ukončenia rodičovských procesov, kým podriadený proces začne implementovať svoju všeobecnú funkciu.

História démonov

Niekoľko démonov je publikovaných init skriptami System V. Sú to skripty alebo krátke programy, ktoré môžu byť spustené automaticky, keď sa systém spúšťa. Môžu sa reprodukovať v intervaloch alebo prežiť počas trvania relácie.

Teraz sa niekoľko démonov spúšťa iba podľa potreby a jedným démonom (xinetd) namiesto nepretržitého vykonávania. xinetd je známy ako superserver TCP/IP.

Spúšťa sa v čase spustenia a tiež počúva rôzne porty, ktoré sú priradené tým procesom uvedeným v konfiguračnom súbore, t. j. /etc/xinetd.conf alebo /etc/inetd.conf.

Manuálne je možné spustiť aj niekoľko démonov, ktoré budú spustené aplikačnými programami a operačným systémom. Všetci démoni majú individuálny skript v niekoľkých operačných systémoch podobných UNIX vrátane Linuxu, pomocou ktorých je možné ich reštartovať a ukončiť.

Správa týchto skriptov je implementovaná podľa úrovní spustenia. Runlevel môže byť definovaný ako prevádzkový alebo konfiguračný stav systému, ktorý povoľuje dostupnosť len niektorých vybraných procesov. Spustenie na odlišnej úrovni behu môže podporiť riešenie určitých problémov alebo problémov vrátane opravy systémových chýb.

Kľúčové body démonov

Niektoré dôležité kľúčové body démonov sú vysvetlené nižšie:

  • Slovo démon je prevzaté z gréckej metodológie démon. Boli to nadprirodzené bytosti, ktoré ležali medzi smrteľníkmi a bohmi a ktoré mali jedinečnú silu alebo vedomosti.
  • V roku 1963 bol termín démon pôvodne použitý v rámci systémového kontextu na priekopníckom projekte MAC s pomocou IBM 7094.
  • Bol inšpirovaný démonom termodynamiky a fyziky Maxwellom, čo bol abstraktný prostriedok, ktorý podporoval triedenie molekúl rôznych rýchlostí a neúnavne pracoval v pozadí.
  • Potom sa tento termín používal na opis procesov na pozadí, ktoré neúnavne pracovali na systémových prácach.
  • Prvý počítač s démonom bol program, ktorý automaticky vytváral zálohy na pásku.
  • Tento výraz bol použitý na používanie počítača. Bola to krátka forma pre Disk and Execution MOnitor.
  • Funkcie démonov v operačnom systéme Microsoft Windows nazývajú rôzne programy. V týchto systémoch sa však niekedy používa aj slovo démon.

Implementácia démonov

Unixové systémy

Proces unixového systému je démon, ak jeho nadradený proces zanikne a tento démon je vymenovaný za init proces (proces číslo 1) ako nadradený proces a striktne technicky neobsahuje žiadny riadiaci terminál.

Démonom však môže byť akýkoľvek proces pozadia, či už je alebo nie je potomkom procesu init.

armstrongovo číslo

Základná technika procedúry sa stane démonom v systéme podobnom UNIX, keď sa procedúra spustí cez príkazový riadok alebo spúšťacie skripty, ako je skript System Starter alebo init skript, zahŕňa:

  • Odstránenie nepotrebných premenných prostredníctvom prostredia voliteľne.
  • Spustenie ako úloha na pozadí ukončením a rozvetvením. Umožňuje rodičovi démona (proces spustenia alebo shellu) prijímať oznámenia o ukončení a pokračovať v bežnom vykonávaní.
  • Odpojenie cez sekciu vyvolávania, zvyčajne vykonávané jednotlivou operáciou, setsid():
    • Disociácia cez tty controling.
    • Vytvoriť novšiu reláciu a stať sa jej vedúcim relácie.
    • Stať sa vodcom procesnej skupiny.
  • Ak sa démon chce uistiť, že nezdedí nové ovládanie tty, môže skončiť a znova sa rozvetviť. Znamená to, že už nie je žiadnym vedúcim relácie v rámci novej relácie a nemôže zdediť žiadne ovládanie tty.
  • Nastavenie aktuálneho pracovného adresára ako koreňového adresára, aby proces nebral žiadny používaný adresár, ktorý by mohol byť cez pripojený súborový systém.
  • Úprava umask na 0 pre povolenie create(), open() a iných volaní operačného systému, aby sa uľahčila ich maska ​​povolení a nespoliehali sa na všetky umask volajúceho.
  • Presmerovanie deskriptorov súborov 0, 1 a 2 pre štandardné toky (stderr, stdout, stdin) do súboru denníka alebo /dev/null a zatvorenie každého ďalšieho súboru deskriptora získaného prostredníctvom nadradeného procesu.

Keď proces začína akýmkoľvek superserverovým démonom ako systemd, launchd alebo inetd, superserver implementuje tieto funkcie pre tento proces, s výnimkou tých démonov starého štýlu, ktoré nie sú transformované na spúšťanie pod systemd a sú opísané ako multivláknové a Type=forking datagramové servery. pri inetd.

aké mesiace sú v 3. štvrťroku

MS-DOS

Program podobný démonovi bol spustený ako softvér na ukončenie a pobyt (v skratke TSR) v rámci platformy Microsoft DOS.

Windows NT

Programy známe ako služby Windows implementujú funkcie týchto démonov v systémoch Microsoft Windows NT. Vykonávajú sa ako procesy a zvyčajne neinteragujú s myšou, klávesnicou a monitorom. Môžu byť spustené pomocou operačného systému v čase zavádzania.

Služby systému Windows sa manuálne zastavujú, spúšťajú a konfigurujú pomocou ovládacieho panela (vyhradeného konfiguračného/riadiaceho programu), skriptovacieho systému PowerShell alebo príkazov net stop a net start, prvku radiča služieb správcu riadenia služieb.

Každá aplikácia Windows však môže implementovať povinnosti démona nielen ako službu a niekoľko démonov systému Windows obsahuje možnosť spustenia ako normálny proces.

Klasický macOS a Mac OS

Rôzne voliteľné služby a funkcie boli uľahčené tými súbormi, ktoré sa načítali pri štarte, čím sa obnovil operačný systém na klasickom Mac OS.

Nazývali sa ovládacie panely a systémové rozšírenia. Neskoršie verzie štandardného Mac OS ich rozšírili o úplne nové aplikácie na pozadí bez tváre.

Tieto aplikácie sú bežné aplikácie, ktoré sa spúšťajú na pozadí. Tie boli stále špecifikované ako bežné systémové rozšírenia pre používateľa.

macOS je systém Unix a používa démonov. Systém macOS používa výraz služby na označenie softvéru, ktorý implementuje funkcie vybrané prostredníctvom ponuky služieb, namiesto použitia tohto výrazu, ako to robia okná pre démonov.

Typické funkcie démonov

  • Vykonajte naplánované akcie ako cron.
  • Monitorujte systémy, ako je pole RAID alebo stav pevného disku.
  • Odpovedzte na požiadavku siete a otvorte sieťový port (napríklad port 80).

Ako spustíme, reštartujeme alebo zastavíme démonov pre výzvu shellu?

Musíme použiť ich servisné príkazy, ako je uvedené nižšie:

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

V nasledujúcom príklade hviezdičky, reštart a zastavenie.

 service httpd start service httpd stop service httpd restart 

Ako skontrolujeme zoznam každého spusteného démona?

Ak chcete skontrolovať stav každého nainštalovaného démona, zadajte:

 service - -status-all 

Plánovanie nášho démona

Čo bude démon robiť?

Démon musí implementovať jednu vec a dobre ju implementovať. Táto jediná vec môže byť taká zložitá ako manipulácia s mnohými poštovými schránkami vo viac ako jednej doméne alebo taká jednoduchá ako zavolanie sendmailu, aby ste to poslali správcovi a špecifikovali správu.

Musíme mať lepšiu predstavu o tom, čo musí démon v každom prípade urobiť. Bude interagovať s niekoľkými ďalšími démonmi, ktorých môžeme špecifikovať alebo nie. To je tiež niečo iné na preskúmanie.

očíslovať abecedu

Interakcia

Démoni nikdy nesmú komunikovať s používateľom priamo cez terminál. Každá komunikácia prechádza niekoľkými druhmi rozhrania (ktoré môžeme alebo nemusíme špecifikovať), ktoré môžu byť také komplikované ako GUI+GTK alebo také jednoduché ako individuálna sada.

Základná štruktúra démona

Daemon musí implementovať niekoľko nízkoúrovňových domácich prác, aby sa po spustení pripravil na skutočnú prácu. Zahŕňa niekoľko krokov, ktoré sú nasledovné:

  • Rozvinúť super proces (nadradený proces)
  • Upraviť masku režimu súboru (umask)
  • Ak chcete zapisovať, otvorte denníky
  • Vytvorte špeciálne ID relácie (skrátene SID)
  • Upravte pracovný adresár (aktuálny) na bezpečné miesto
  • Zatvorte deskriptory tried súboru
  • Zadajte pôvodný kód démona

Zoznam služieb démonov pre systémy Unix a Linux

    anachron:V čase spustenia spúšťa oneskorené akcie cronu.amd:Je to skratka pre Auto Mount Daemon.atď:Vykonáva úlohy zaradené do frontu pomocou nástroja.apmd:Je to skratka pre Advanced Power Management Daemon.crond:Je to démon plánovača úloh.autofs:Pomáha démonovi automounter, ktorý umožňuje odpojenie a pripojenie zariadení podľa potreby.dhcpd:Je to skratka pre Dynamic Host Configuration Protocol. Je to tiež internetový server Bootstrap Protocol Server.cupsd:Je to skratka pre CUPS printer daemon.ftpd:Je to skratka pre FTP Server Daemon.httpd:Je to démon webového servera.brána:Dokáže smerovať démonov, ktoré nahrádzajú egpup a smerovať a spravovať viac ako jeden smerovací protokol.lpd:Je to skratka pre Line Printer Daemon.imapd:Je to démon servera imap.inetd:Je to skratka pre Internet Superserver Daemon.memchached:Je to in-memory distribuovaný démon ukladania objektov do vyrovnávacej pamäte.mysql:Je to démon databázového servera.namontované:Je to mount démon.nfsd:Je to skratka pre Network File Sharing Daemon.s názvom:Je to démon servera DNS.nflock:Používa sa na spustenie a zastavenie služieb uzamknutia súborov nfs.ntpd:Je to skratka pre Network Time Protocol service daemon.nmbd:Je to skratka pre Network Message Block Daemon.postgresql:Je to démon databázového servera.postfix:Je to poštový transportný agent a používa sa ako náhrada za Sendmail.rpcbind:Je to skratka pre Remote Procedure Call Bind Daemon.smerované:Ovláda smerovacie tabuľky.smbd:Je to Samba Daemon.poslať mail:Je to démon agenta prenosu pošty.smtpd:Je to skratka pre Simple Mail Transfer Protocol Daemon.chobotnica:Je to démon servera proxy, ktorý ukladá webovú stránku do vyrovnávacej pamäte.snmpd:Je to skratka pre Simple Network Management Protocol Daemon.synchronizácia:Dokáže synchronizovať rôzne súborové systémy spolu so systémovou pamäťou.sshd:Je to serverový démon Secure Shell.syslogd:Je to skratka pre systémového logovacieho démona.telnetd:Je to Telnet Server Daemon.tcpd:Má obal služby, ktorý môže obmedziť autorizáciu na služby založené na inetd z hosts.deny a hosts.allow.vsftpd:Je to skratka pre Very Secure FTP Daemon.webmin:Je to webový démon administračného servera.xntd:Je to démon sieťového časového servera.xinetd:Je to vylepšený internetový superserver démon.