logo

Linuxový démon

Co je to démon?

Démon je druh programu v OS typu UNIX, který se spouští na pozadí nenápadně, namísto přímého přístupu uživatele. Čeká, až bude spuštěn výskytem konkrétní podmínky nebo události.

Systémy podobné UNIXu obvykle spouštějí četné démony, především pro přizpůsobení požadavků na služby prostřednictvím jiných systémů v síti, pro činnost hardwaru a také pro reakci na jiné programy.

Příklady podmínek nebo akcí, které by mohly aktivovat démony do aktivity, mohou být konkrétní datum nebo čas, průchod popsaného časového intervalu, přijetí webového požadavku nebo e-mailu vytvořeného z konkrétní komunikační linky a přistání souboru v konkrétním adresáři.

boolean v c

Není povinné, aby bylo o pachateli podmínky nebo akce známo, že démon naslouchá.

Programy však často implementují akci jen proto, že je jim známo, že by to implicitně vyvolalo démona.

Démon se také nazývá procesy na pozadí. Je to UNIX nebo Linux program, který se spouští na pozadí. Téměř každý démon obsahuje jména, která končí písmenem 'd'. Například sshd spravuje připojení vzdáleného přístupu SSH nebo démona httpd, který spravuje server Apache. Linux často spouští démony v době spuštění.

Různé skripty shellu jsou uloženy v adresáři /etc/init.d. Tyto skripty se používají pro spouštění a zastavování démonů.

Linuxové procesy

Obvykle jsou démoni instancí jako procesy. Tyto procesy jsou spuštěné nebo provádějící instance programu. Proces je řízen jádrem, které je jádrem operačního systému a přiděluje všechna speciální identifikační čísla procesu.

V Linuxu existují hlavně tři běžné druhy procesů, které jsou následující:

  • Dávka
  • Interaktivní
  • Démon

Dávkový proces se odesílá prostřednictvím fronty procesů a nesouvisí s příkazovým řádkem. Tyto procesy se dobře hodí k provádění opakujících se operací, pokud je využití systému nízké.

Interaktivní proces je interaktivně spouštěn uživatelem na příkazovém řádku.

Démon je identifikován systémem jako ty procesy, jejichž nadřazený proces obsahuje PID s hodnotou jedna.

Vždy definuje inicializaci procesu. Proces init je počáteční proces, který začíná při spuštění systému Linux a zůstává nad systémem, dokud se systém nevypne.

jak vybrat sloupce z různých tabulek v sql

Init může přijmout jakýkoli typ procesu, jehož nadřazený proces skončí nebo zanikne, aniž by čekal na stav podřízeného procesu.

Základní technikou spuštění démona je tedy dělení nebo větvení dvakrát nebo jednou a také umožnění ukončení nadřazených procesů, zatímco podřízený proces začne implementovat svou obecnou funkci.

Historie démonů

Několik démonů je publikováno init skripty System V. Jedná se o skripty nebo krátké programy, které lze spustit automaticky, když se systém spouští. Mohou být buď reprodukovány v intervalech, nebo přežít po dobu trvání relace.

Nyní se několik démonů spouští pouze podle potřeby a jedním démonem (xinetd) místo toho, aby se spouštěly nepřetržitě. xinetd je známý jako TCP/IP super server.

Spouští se v čase spuštění a také naslouchá různým portům, které jsou přiřazeny těm procesům uvedeným v konfiguračním souboru, tj. /etc/xinetd.conf nebo /etc/inetd.conf.

strojové učení a typy

Ručně by také bylo možné spustit několik démonů, které budou spouštěny aplikačními programy a operačním systémem. Všichni démoni mají samostatný skript v několika OS podobných UNIX včetně Linuxu, pomocí kterého je lze znovu spustit a ukončit.

Správa těchto skriptů je implementována podle úrovní běhu. Runlevel může být definován jako provozní nebo konfigurační stav systému, který povoluje dostupnost pouze některých vybraných procesů. Spuštění na odlišné úrovni běhu může podpořit řešení určitých problémů nebo problémů včetně nápravy systémových chyb.

Klíčové body démonů

Některé důležité klíčové body démonů jsou vysvětleny níže:

  • Slovo démon je převzato z řecké metodologie démon. Jednalo se o nadpřirozené bytosti, které leží mezi smrtelníky a bohy a které disponovaly jedinečnou silou nebo věděním.
  • V roce 1963 byl termín démon původně aplikován v kontextu systému na průkopnickém projektu MAC s pomocí IBM 7094.
  • Byl inspirován démonem termodynamiky a fyziky Maxwellem, což byl abstraktní prostředek, který podporoval třídění molekul různých rychlostí a neúnavně pracoval na pozadí.
  • Poté byl tento termín používán pro popis procesů na pozadí, které neúnavně pracovaly na systémových pracích.
  • První počítač s démonem byl program, který automaticky vytvářel zálohy na pásku.
  • Tento termín byl použit pro použití na počítači. Bylo to jako krátká forma pro Disk and Execution MOnitor.
  • Různé programy nazývané služby funkcí démonů v operačním systému Microsoft Windows. S těmito systémy se však někdy používá také slovo démon.

Implementace démonů

Unix jako systémy

Proces unixového systému je démonem, pokud jeho nadřazený proces zemře a tento démon je jmenován procesem init (proces číslo 1) jako nadřazený proces a přísně technicky neobsahuje žádný řídící terminál.

Démon však může být jakýkoli proces na pozadí, ať už je proces init podřízený nebo ne.

Základní technika procedury se stává démonem v systému podobném UNIXu, když je procedura spuštěna pomocí příkazového řádku nebo spouštěcích skriptů, jako je skript System Starter nebo init skript, zahrnuje:

  • Volitelné odstranění nepotřebných proměnných prostřednictvím prostředí.
  • Spuštění jako úloha na pozadí ukončením a rozvětvením. Umožňuje rodiči démona (proces spuštění nebo shellu) přijímat oznámení o ukončení a pokračovat v normálním provádění.
  • Odpojení prostřednictvím sekce vyvolání, obvykle prováděné jednotlivou operací, setsid():
    • Disociace přes tty controlling.
    • Vytvořit novější relaci a stát se vedoucím této relace.
    • Stát se vedoucím procesní skupiny.
  • Pokud se démon chce ujistit, že nezdědí nové ovládání tty, může skončit a znovu se rozdělit. Znamená to, že již není žádným vedoucím relace v nové relaci a nemůže zdědit žádné ovládání tty.
  • Nastavení aktuálního pracovního adresáře jako kořenového adresáře, aby proces nebral žádný používaný adresář, který by mohl být přes připojený souborový systém.
  • Úprava umask na 0 pro umožnění create(), open() a dalších volání operačního systému, aby se usnadnila jejich maska ​​oprávnění a nespoléhalo se na všechny umask volajícího.
  • Přesměrování deskriptorů souborů 0, 1 a 2 pro standardní proudy (stderr, stdout, stdin) do souboru protokolu nebo /dev/null a uzavření všech ostatních souborů deskriptorů získaných prostřednictvím nadřazeného procesu.

Když proces začíná jakýmkoli démonem superserveru, jako je systemd, launchd nebo inetd, superserver implementuje tyto funkce pro tento proces, s výjimkou těch démonů starého stylu, které nejsou transformovány do spuštění pod systemd a jsou popsány jako multivláknové a Type=forking datagramové servery. na inetd.

konverze řetězce na int v jazyce Java

MS-DOS

Program podobný démonovi byl spuštěn jako software pro ukončení a pobyt (zkráceně TSR) v rámci platformy Microsoft DOS.

Windows NT

Programy známé jako služby Windows implementují funkce těchto démonů v systémech Microsoft Windows NT. Provádějí se jako procesy a obvykle neinteragují s myší, klávesnicí a monitorem. Mohou být spuštěny pomocí operačního systému v době spouštění.

Služby systému Windows jsou ručně zastavovány, spouštěny a konfigurovány pomocí ovládacího panelu (vyhrazený konfigurační/řídicí program), skriptovacího systému PowerShell nebo příkazů net stop a net start, což je prvek řadiče služeb ve správci řízení služeb.

Každá aplikace Windows však může implementovat povinnosti démona nejen jako službu a několik démonů systému Windows obsahuje možnost spuštění jako normální proces.

Klasický macOS a Mac OS

Různé volitelné služby a funkce byly usnadněny těmi soubory načtenými v době spouštění, které přebudují operační systém na klasický Mac OS.

Říkalo se jim ovládací panely a rozšíření systému. Pozdější verze standardního Mac OS je rozšířily o zcela nové aplikace na pozadí bez tváře.

Tyto aplikace jsou běžné aplikace, které se spouštějí na pozadí. Ty byly stále specifikovány jako běžná rozšíření systému pro uživatele.

macOS je unixový systém a používá démony. MacOS použije termín služby pro označení softwaru, který implementuje funkce vybrané prostřednictvím nabídky služeb, namísto použití tohoto termínu jako Windows pro démony.

Typické funkce démonů

  • Provádějte naplánované akce jako cron.
  • Monitorujte stav systémů, jako je pole RAID nebo stav pevného disku.
  • Odpovězte na požadavek sítě a otevřete síťový port (jako port 80).

Jak spustíme, restartujeme nebo zastavíme démony pro výzvu shellu?

Musíme použít jejich servisní příkazy, jak je uvedeno níže:

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

V následujícím příkladu hvězdičky, restart a stop.

 service httpd start service httpd stop service httpd restart 

Jak zkontrolujeme seznam každého běžícího démona?

Chcete-li zkontrolovat stav každého nainstalovaného démona, zadejte:

 service - -status-all 

Plánování našeho démona

Co udělá démon?

Démon musí implementovat jednu věc a dobře ji implementovat. Tato jediná věc může být tak komplikovaná jako manipulace s mnoha poštovními schránkami ve více než jedné doméně nebo tak snadná jako volání sendmailu, aby to poslal adminovi a specifikoval zprávu.

Musíme mít lepší představu o tom, co musí démon v každém případě dělat. Bude komunikovat s několika dalšími démony, které můžeme specifikovat nebo ne. To je také něco jiného ke zkoumání.

příkaz switch java

Interakce

Démoni nikdy nesmí komunikovat s uživatelem přímo přes terminál. Každá komunikace prochází několika druhy rozhraní (které můžeme nebo nemusíme specifikovat), což může být tak složité jako GUI+GTK nebo snadné jako samostatná sada.

Základní struktura démona

Daemon musí implementovat několik domácích prací na nízké úrovni, aby se po spuštění připravil na skutečnou práci. Zahrnuje několik kroků, které jsou následující:

  • Rozdělit super proces (nadřazený proces)
  • Upravit masku režimu souboru (umask)
  • Otevřete protokoly pro zápis
  • Vytvořte speciální ID relace (zkráceně SID)
  • Upravte pracovní adresář (aktuální) na bezpečné místo
  • Zavřete deskriptory tříd souboru
  • Zadejte původní kód démona

Seznam služeb démona pro systémy Unix a Linux

    anachron:Spouští zpožděné cron akce v době spuštění.amd:Je to zkratka pro Auto Mount Daemon.atd:Provádí úlohy zařazené do fronty pomocí nástroje at.apmd:Je to zkratka pro Advanced Power Management Daemon.crond:Je to démon plánovače úloh.autofs:Pomáhá démonu automounter tím, že umožňuje odpojení a připojení zařízení na vyžádání.dhcpd:Je to zkratka pro Dynamic Host Configuration Protocol. Je to také internetový server Bootstrap Protocol Server.cupsd:Je to zkratka pro CUPS printer daemon.ftpd:Je to zkratka pro FTP Server Daemon.httpd:Je to démon webového serveru.bránou:Může směrovat démony, které nahrazují egpup a směrovat a spravovat více než jeden směrovací protokol.lpd:Je to zkratka pro Line Printer Daemon.imapd:Je to démon serveru imap.inetd:Je to zkratka pro Internet Superserver Daemon.memchached:Je to in-memory distribuovaný démon pro ukládání objektů do mezipaměti.mysql:Je to démon databázového serveru.namontováno:Je to mount démon.nfsd:Je to zkratka pro Network File Sharing Daemon.jmenoval:Je to démon serveru DNS.nflock:Používá se pro spouštění a zastavování zamykacích služeb souborů nfs.ntpd:Je to zkratka pro Network Time Protocol service daemon.nmbd:Je to zkratka pro Network Message Block Daemon.postgresql:Je to démon databázového serveru.postfix:Je to poštovní transportní agent a používá se jako náhrada za Sendmail.rpcbind:Je to zkratka pro Remote Procedure Call Bind Daemon.směrováno:Zvládá směrovací tabulky.smbd:Je to Samba Daemon.poslat mail:Je to démon agenta pro přenos pošty.smtpd:Je to zkratka pro Simple Mail Transfer Protocol Daemon.oliheň:Jedná se o démona proxy serveru pro ukládání webových stránek do mezipaměti.snmpd:Je to zkratka pro Simple Network Management Protocol Daemon.synchronizace:Může udržovat různé systémy souborů synchronizované spolu se systémovou pamětí.sshd:Je to Secure Shell Server Daemon.syslogd:Je to zkratka pro systémového logovacího démona.telnetd:Je to Telnet Server Daemon.tcpd:Má obal služby, který může omezit autorizaci na služby založené na inetd z hosts.deny a hosts.allow.vsftpd:Je to zkratka pro Very Secure FTP Daemon.webmin:Je to webový démon administračního serveru.xntd:Je to démon síťového časového serveru.xinetd:Je to Enhanced Internet Superserver Daemon.