GNU/Linux >> Znalost Linux >  >> Linux

Vše o démonech v Linuxu

Protože operační systém Linux je charakterizován jako multitaskingový operační systém, démon je ze své definice program, který se nepřetržitě spouští jako proces na pozadí. Stručně řečeno, provedení tohoto procesu nezávisí na interakci aktivního uživatele se systémem. Normální uživatel systému nemůže kontrolovat pravidelné provádění procesu démona.

Konvence pojmenování, která definuje většinu procesů démonů, je jednopísmenná „přípona“ d. Tato konvence pojmenování umožňuje rozlišovat mezi normálními systémovými procesy a procesy poháněnými démony. Například sshd je proces démona zodpovědný za správu příchozích SSH spojení. Dalším příkladem procesu démona je syslogd . Je odpovědný za protokolovací zařízení systému Linux.

V prostředí Linuxu je spouštění démonů v době bootování. Protože systém Linux je dokonalým klonem Unixu, proces init se kvalifikuje jako nadřazený proces démona. Chcete-li spustit a zastavit démony v operačním systému Linux, musíte nejprve otevřít /etc/init.d scripts adresář ve vašem OS.

Běžné funkce démonů

  • Umožňuje vašemu systému správně reagovat na síťové požadavky tím, že každý požadavek přiřadí ke kompatibilnímu síťovému portu. Typický síťový port obsluhovaný démony je port 80.
  • Démoni umožňují spouštět nebo spouštět naplánované systémové úlohy. Démon zodpovědný za tento konkrétní úkol se nazývá cron . Vytvoří úlohu cron který se postará o pravidelné provádění vašich naplánovaných úloh.
  • Démoni také nabízejí neocenitelný příspěvek při sledování výkonu vašeho systému. Mohou například zkontrolovat stav pole RAID nebo pevného disku.

Užiteční démoni služeb Linux

  • amd :Auto Mount Daemon
  • anacron: Doba spouštění zpožděných úloh cron
  • apmd: Advanced Power Management Daemon
  • atd: Používá se funkce nástroje k provádění úloh ve frontě
  • autofs: pracuje ruku v ruce s démonem automounter a usnadňuje připojování a odpojování systémových zařízení na vyžádání
  • crond: démon, který se stará o plánování úloh
  • cupsd: démon, který zpracovává tisk CUPS
  • DHCP: démon pro Internet Bootstrap Protocol Server i Dynamic Host Configuration Protocol.
  • uzavřený: směrovací démon zodpovědný za více směrovacích protokolů. Nahrazuje routed a egpup
  • httpd: démon, který se zabývá webovými servery jako Apache
  • inetd: démon spojený s internetovým superserverem
  • imapd :démon pro server IMAP
  • lpd: Démon řádkové tiskárny
  • memcached: démon pro ukládání objektů do mezipaměti, který je distribuován v paměti
  • připojeno: mount démon
  • MySQL: démon pro databázový server MySQL
  • pojmenovaný: démon pro server DNS
  • nfsd: Démon síťového sdílení souborů
  • nfslock: Protože nfsd je spojen se službami zamykání souborů, tento démon může tyto služby spouštět a zastavovat.
  • nmbd: démon pro Network Message Block
  • ntpd: démon pro službu Network Time Protocol
  • postfix: démon, který slouží jako agent pro přenos pošty. Je to alternativa k sendmailu.
  • Postgresql: démon pro databázový server Postgres
  • směrováno: démon pro správu směrovacích tabulek
  • rpcbind: démon spojený s Remote Procedure Call Bind
  • odeslat e-mail: démon, který slouží jako agent přenosu pošty
  • smbd: démon pro server Samba SMB
  • smtpd: démon pro Simple Mail Transfer Protocol
  • snmpd: démon pro Simple Network Management Protocol
  • chobotnice: démon spojený s proxy serverem pro ukládání webových stránek do mezipaměti
  • sshd: démon spojený se Secure Shell Server
  • synchronizovat: démon pro synchronizaci systémové paměti se systémovými soubory
  • Syslog: démon, který provádí systémové protokolování
  • tcpd: tento obal služby démona spouští protokoly omezení přístupu související se službami démonů založených na inetd. Tato omezení implementuje prostřednictvím hosts.allow a hosts.deny .
  • Telnetd: démon pro telnet server
  • vsftpd: démon pro velmi bezpečný protokol File Transfer Protocol
  • webmin: démon pro webový administrační server
  • xinetd: démon spojený s Enhanced Internet Supervisor
  • xntd :démon pro Network Time Server

Ať už jste začátečník, středně pokročilý nebo zkušený uživatel ve světě operačního systému Linux, nikdy se vám nepodaří seznámit se s jedním z výše uvedených démonů, když budete rozvíjet své dovednosti a odborné znalosti v tomto prostředí operačního systému.

Spouštění/zastavování/restartování démonů:terminálový přístup

Nyní, když máte seznam užitečných linuxových démonů, které si můžete zapamatovat a prozkoumat, první věc, kterou potřebujete vědět, je, jak tyto démony spustit, zastavit nebo restartovat. Po spuštění terminálu Linux zvažte následující pravidla syntaxe pro spuštění, zastavení a restartování démona v operačním systému Linux.

service preferred-daemon-name start

service preferred-daemon-name stop 

service preferred-daemon-name restart

Nahraďte název-preferovaného-démona argument syntaxe s názvem systémového démona Linux podle vašeho výběru. Můžete si vybrat jednoho ze seznamu démonů zvýrazněného výše, pokud je aktivní nebo již definovaný ve vašem systému Linux. Můžeme například implementovat praktické použití výše uvedené syntaxe pokusem spustit, zastavit a restartovat démon. Přejděte na /etc/init.d adresář na vašem terminálu pro seznam dostupných démonů ve vašem systému Linux.

Výpis démonů vašich systémů Linux

Efektivnější způsob, jak si poznamenat dostupné démony ve vašem systému Linux namísto navigace do /etc/init.d adresář je vypsat všechny definované aktivní a neaktivní démony z tohoto adresáře pomocí jediného příkazu. K dosažení tohoto cíle je účinný následující příkaz.

$ service –status-all

Složené kladné [+] a záporné [-] znaménko před uvedenými názvy démonů znamená, že jsou buď aktivní, nebo neaktivní.

Práce s uživatelsky definovanými démony

Aby bylo možné úspěšně vytvořit a implementovat uživatelem definovaného démona, je třeba dodržovat specifická pravidla nebo protokoly. Tyto protokoly vám pomohou plně porozumět provádění démonů v jakémkoli prostředí Linuxu. Démoni jsou také dostatečně flexibilní, aby se propojili s moduly jádra prostřednictvím systémových volání. Tento úsek funkčnosti démona podporuje jeho interakci s hardwarovými zařízeními, jako jsou PDA (Personal Digital Assistants), tiskárny a životaschopné externí řídicí desky. Stavební bloky démonů také přispívají k charakteristické síle a flexibilitě operačního systému Linux.

Sander Marechal pečlivě předvedl a zdokumentoval implementaci souvisejícího démona pomocí Pythonu. Při vytváření tohoto démona se snažte dodržovat příkaz k provedení. Za prvé, váš systém Linux potřebuje instalaci balíčků Pythonu, aby mohl úspěšně vyvíjet démony. Chcete-li nainstalovat Python, můžete použít následující příkaz.

$ sudo apt install python3-pip python3-dev

Odkaz na vytvořený kód démona Python společnosti Sander Marechal také nabízí vylepšenou verzi kódu Python 3. Pomohlo by, kdybyste zvážili jeho implementaci, abyste lépe pochopili, jak démoni fungují.

Pokud si nejste jisti, zda máte nainstalovaný Python, spusťte na svém linuxovém terminálu následující příkaz.

$ python3 --version

Účel jakéhokoli démona

Vzhledem k tomu, že jeden démon je určen ke zpracování konkrétní úlohy, měl by ji provést k dokonalosti. Daný úkol může být tak jednoduchý jako vytvoření zprávy a její odeslání administrátorovi prostřednictvím sendmailu nebo tak složitý jako správa více domén spojených s více poštovními schránkami. V určitém okamžiku bude muset démon, kterého se chystáte vytvořit, mluvit s ostatními existujícími démony.

interakce mezi uživatelem a démonem

Nedoporučuje se, aby uživatel systému a vytvořený démon komunikovali přímo. Pokud je to nutné pro démona, vytvoříte pro komunikaci se systémovým uživatelem. Tuto komunikaci lze usnadnit pomocí něčeho jako GUI rozhraní. Tato komunikační platforma může mít buď složitost GTK+ GUI, nebo jednoduchost sady signálů.

Vytvoření vašeho démona

Mnoho přístupů podporuje vytváření démonů. Můžete například použít rozhraní příkazového řádku k démonizaci skriptu Python takto:

$ python my_python_script.py &

Kód démona Python3 vytvořený Sanderem Marechalem můžete uložit do souboru Python a démonizovat jej pomocí výše uvedeného příkazu. Zatímco výše uvedený příkaz terminálu pro vás snadno vytvoří démona, budete se muset vypořádat s problémy, jako jsou nepředvídatelné výstupy terminálu. Tyto výzvy závisí na tom, jak dobře jste refaktorovali svůj kód démona Python. Výše uvedený přístup také nepodporuje přiřazování souborů zámku PID ke konkrétním démonům. Znemožňuje ovládání jakéhokoli démona, protože většina z nich se spustí okamžitě. Na druhou stranu, pokud potřebujete pouze jednoduchého démona, výše zmíněný přístup vám poskytne požadované výsledky démona.

Základní struktura démona

Než démon spustí nebo provede zamýšlenou funkci, bude muset zvážit některá předem vytvořená pravidla vedoucí k jeho provedení. Tato pravidla si můžete představit jako nenáročnou domácí práci vedoucí k jejímu skutečnému úkolu. Tato pravidla lze rozdělit do následujících kroků.

  • Nejprve dojde k vytvoření větvení z nadřazeného procesu
  • Následuje změna umask (masky režimu souborů)
  • Protokoly se otevírají pro zápis
  • Je vytvořeno jedinečné SID (ID relace)
  • Provedení se přepne z aktuálního pracovního adresáře do sekundárního umístění, aby byla zachována integrita souboru
  • Standardní deskriptory souborů jsou uzavřeny
  • Spuštění cíleného kódu démona

Více o ukázkových implementacích démonů lze nalézt na GitHubu.


Linux
  1. Kali Linux systémové požadavky

  2. Zjistěte více o svém systému Linux pomocí inxi

  3. Linux – všechno je soubor?

  1. Příkaz k vypnutí Linuxu

  2. Příkaz Fsck v Linuxu

  3. Linux lsusb Command - Tisk informací o USB v systému

  1. Je Linux operační systém nebo jádro?

  2. Dokumentace provozuschopnosti systému v Linuxu

  3. Vše, co potřebujete vědět o systému souborů Linux