Vzhledem k tomu, že operační systém Linux je charakterizován jako multitaskingový operační systém, je démon podle definice program, který nepřetržitě běží jako proces na pozadí. Stručně řečeno, provedení tohoto procesu nezávisí na interakci systému aktivního uživatele. Normální uživatel systému nemůže kontrolovat periodické provádění procesu démona.
Konvence pojmenování, která definuje většinu procesů démona, je jednopísmenná přípona d. Tato konvence pojmenování umožňuje rozlišovat mezi normálními systémovými procesy a procesy využívajícími démony. Například, sshd je proces démona odpovědný za správu příchozíchSSH připojení. Dalším příkladem procesu démona jesyslogd. Je zodpovědný za systém protokolování systému Linux.
V prostředí Linux je spuštění démonů v době spuštění. Vzhledem k tomu, ž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 ve vašem operačním systému Linux, musíte nejprve otevřít/ etc / init.d adresář skriptů ve vašem operačním systému.
Běžné funkce démonů
- Umožňuje vašemu systému správně reagovat na síťové požadavky přidružením každého požadavku ke kompatibilnímu síťovému portu. Typickým síťovým portem zpracovávaným démony je port 80.
- Démoni umožňují spouštět nebo spouštět naplánované systémové úkoly. Démon odpovědný za tento konkrétní úkol se nazývá cron. Vytvoří cron práce který bude zpracovávat pravidelné provádění vašich naplánovaných úkolů.
- 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 stav pevného disku.
Užitečné linuxové servisní démony
- amd: Auto Mount Daemon
- anacron: Spuštění doby spuštění zpožděných úloh cronu
- apmd: Pokročilý démon správy napájení
- atd: Používá na funkčnost nástroje k provádění úloh ve frontě
- autofs: pracuje ruku v ruce s démonem automounter, aby usnadnil připojení a odpojení systémových zařízení na vyžádání
- crond: démon, který zpracovává plánování úkolů
- cupd: démon, který zpracovává tisk CUPS
- DHCP: démon pro server Internet Bootstrap Protocol i Dynamic Host Configuration Protocol.
- bránou: směrovací démon odpovědný za více směrovacích protokolů. Nahrazuje směrované a egup
- httpd: démon, který pracuje s webovými servery, jako je Apache
- inetd: démon spojený s internetovým superserverem
- imapd: démon pro server IMAP
- LPD: Line Printer Daemon
- memcached: démon ukládání do mezipaměti objektů, který je distribuován v paměti
- mountd: připojit démona
- MySQL: démon pro databázový server MySQL
- pojmenovaný: démon pro server DNS
- nfsd: Démon sdílení souborů v síti
- nfslock: Protože nfsd je spojen se službami zamykání souborů, může tento démon tyto služby spouštět a zastavovat.
- nmbd: démon pro blokování síťových zpráv
- ntpd: démon pro službu Network Time Protocol
- postfix: démon, který slouží jako agent přenosu pošty. Jedná se o alternativu k sendmail.
- 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 vazbou vzdáleného volání procedur
- poslat mail: démon, který slouží jako agent přenosu pošty
- smbd: démon pro Samba SMB server
- smtpd: démon protokolu Simple Mail Transfer Protocol
- snmpd: démon pro Simple Network Management Protocol
- oliheň: démon spojený s proxy serverem pro ukládání do mezipaměti webové stránky
- sshd: démon spojený se serverem Secure Shell
- synchronizace: démon pro synchronizaci systémové paměti se systémovými soubory
- Syslog: démon, který provádí protokolování systému
- tcpd: tento obálka služby démona provádí protokoly omezení přístupu související se službami démona založenými na inetd. Provádí tato omezení prostřednictvím hostitelé.dovolit a hostitelé.odmítnout.
- Telnetd: démon pro server telnet
- vsftpd: démon pro velmi bezpečný protokol pro přenos souborů
- webmin: démon pro webový server pro správu
- 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ích systémů Linux, nikdy se vám nepodaří seznámit se s některým z výše uvedených démonů, jak budete rozvíjet své dovednosti a znalosti v tomto prostředí OS.
Spuštění / zastavení / restartování démonů: přístup založený na terminálu
Nyní, když máte seznam užitečných démonů Linuxu, které si musíte zapamatovat a prozkoumat, je třeba vědět, 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.
služba preferovaný-název démona start služba upřednostňovaný název-démona stop restart služby preferovaný název-démona
Nahradit preferovaný název démona argument syntaxe s názvem démona systému 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ž je definován ve vašem systému Linux. Například můžeme implementovat praktické použití výše uvedené syntaxe pokusem o spuštění, zastavení a restartování adé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.
Seznam démonů vašich systémů Linux
Efektivnější způsob zaznamenávání dostupných démonů ve vašem systému Linux namísto přechodu na / etc / init.d adresář je seznam všech definovaných aktivních a neaktivních démonů z tohoto adresáře jediným příkazem. K dosažení tohoto cíle je účinný následující příkaz.
$ service -status-all
Znaky kladného kladného [+] a záporného [-] před uvedenými názvy démonů naznačují, že jsou buď aktivní, nebo neaktivní.
Práce s uživatelem definovanými démony
K úspěšnému vytvoření a implementaci uživatelem definovaného démona je třeba dodržovat konkrétní pravidla nebo protokoly. Tyto protokoly vám pomohou plně pochopit provádění démonů v jakémkoli prostředí Linux. Démoni jsou také dostatečně flexibilní, aby mohli komunikovat s moduly jádra prostřednictvím systémových volání. Toto rozšíření funkčnosti démona podporuje jeho interakci s hardwarovými zařízeními, jako jsou PDA (Personal Digital Assistants), tiskárnami a životaschopnými deskami externích řadičů. Stavební kameny démonů také přispívají k charakteristické síle a flexibilitě operačního systému Linux.
Sander Marechal pečlivě předvádí a dokumentuje implementaci relativního démona pomocí Pythonu. Při vytváření tohoto démona se snažte sledovat pořadí provádění. Za prvé, váš systém Linux potřebuje k úspěšnému vývoji démonů instalaci balíčků Pythonu. Chcete-li nainstalovat Python, můžete použít následující příkaz.
$ sudo apt nainstalovat python3-pip python3-dev
Odkaz na autorský kód démona Python Sandera Marechala nabízí také vylepšenou verzi kódu Pythonu 3. Pomohlo by, kdybyste uvažovali o jeho implementaci, abyste lépe pochopili, jak démoni fungují.
Pokud si nejste jisti, zda máte nainstalovaný Python, spusťte na svém terminálu Linux následující příkaz.
$ python3 --verze
Účel jakéhokoli démona
Vzhledem k tomu, že jeden démon je určen ke zpracování konkrétního úkolu, měl by jej dokončit. Dotyčný úkol může být stejně jednoduchý jako vytvoření sestavy a její odeslání správci prostřednictvím sendmailu nebo tak složitý jako správa více domén propojených s více poštovními schránkami. V určitém okamžiku bude démon, kterého se chystáte vytvořit, muset 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 pro démona nezbytné, vytvoříte komunikaci pro uživatele systému. Tuto komunikaci lze usnadnit pomocí něčeho jako rozhraní GUI. Tato komunikační platforma může mít buď GTK + GUI složitost, nebo jednoduchost sady signálů.
Vytváření vašeho démona
Vytváření démonů podporuje řada přístupů. Rozhraní příkazového řádku můžete například použít k daemonizaci skriptu Python následujícím způsobem:
$ python my_python_script.py &
Můžete uložit autorský kód démona Python3 od Sandera Marechala do souboru Pythonu a daemonizovat jej výše uvedeným příkazem. Zatímco výše uvedený příkaz terminálu pro vás snadno vytvoří démona, budete se muset vypořádat s výzvami, 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 Pythonu. Výše uvedený přístup také nepodporuje přiřazování souborů zámku PID konkrétním démonům. To znemožňuje ovládat libovolného démona, protože většina z nich bude spuštěna okamžitě. Na druhou stranu, pokud potřebujete pouze jednoduchého démona, výše uvedený přístup vám poskytne požadované výsledky démona.
Základní struktura démona
Než démon provede nebo provede zamýšlenou funkci, bude muset zvážit některá předem vytvořená pravidla vedoucí k jejímu provedení. Tato pravidla si můžete představit jako domácí práce na nízké úrovni vedoucí k jejímu skutečnému úkolu. Tato pravidla lze rozdělit do následujících kroků.
- Nejprve dojde k vytvoření vidlice z nadřazeného procesu
- Následuje změna umask (maska režimu souboru)
- Protokoly se otevírají pro zápis
- Je vytvořen jedinečný SID (ID relace)
- Spuštění se přepne z aktuálního pracovního adresáře do sekundárního umístění, aby se zachovala integrita souboru
- Standardní deskriptory souborů jsou uzavřeny
- Provádění cíleného kódu démona
Více příkladů implementací démonů najdete na GitHubu.