Pretože operačný systém Linux je charakterizovaný ako multitaskingový operačný systém, démon je podľa definície program, ktorý sa neustále vykonáva ako proces na pozadí. Stručne povedané, vykonávanie tohto procesu nezávisí od interakcie systému aktívneho používateľa. Normálny užívateľ systému nemôže kontrolovať periodické vykonávanie procesu démona.
Konvencia pomenovania, ktorá definuje väčšinu procesov démonov, je jednopísmenová „prípona“ d. Táto konvencia pomenovania umožňuje rozlišovať medzi normálnymi systémovými procesmi a procesmi poháňanými démonmi. Napríklad, sshd je démonový proces zodpovedný za správu prichádzajúcichSSH spojenia. Ďalším príkladom procesu démona jesyslogd. Je zodpovedný za zariadenie na protokolovanie systému Linux.
V prostredí Linuxu je spustenie démonov v čase zavádzania. Pretože systém Linux je dokonalým klonom Unixu, proces init sa kvalifikuje ako nadradený proces démona. Ak chcete vo svojom operačnom systéme Linux spustiť a zastaviť démonov, musíte najskôr otvoriť stránku/ etc / init.d adresár skriptov vo vašom operačnom systéme.
Bežné funkcie démonov
- Umožňuje vášmu systému správne reagovať na sieťové požiadavky tak, že každú požiadavku spojí s kompatibilným sieťovým portom. Typickým sieťovým portom spracovávaným démonmi je port 80.
- Démoni umožňujú spustiť alebo vykonať naplánované úlohy systému. Démon zodpovedný za túto konkrétnu úlohu sa volá cron. Vytvorí sa cron job ktorý bude vykonávať pravidelné vykonávanie vašich naplánovaných úloh.
- Démoni tiež ponúkajú neoceniteľný príspevok pri monitorovaní výkonu vášho systému. Môžu napríklad skontrolovať stav poľa RAID alebo stav pevného disku.
Užitočné démony služby Linux
- pozm: Auto Mount Daemon
- anacron: Vykonanie spustenia oneskorených úloh cron
- apmd: Pokročilý démon správy napájania
- atd: Používa sa na funkčnosť nástroja na vykonávanie úloh vo fronte
- autofs: pracuje ruka v ruke s démonom automounter, aby uľahčil pripojenie a odpojenie systémových zariadení na požiadanie
- crond: démon, ktorý sa stará o plánovanie úloh
- cupd: démon, ktorý zvláda tlač CUPS
- DHCP: démon pre server internetového protokolu Bootstrap a protokol konfigurácie dynamického hostiteľa.
- bránou: smerovací démon zodpovedný za viac smerovacích protokolov. Nahrádza smerované a egupup
- httpd: démon, ktorý sa zaoberá webovými servermi ako Apache
- inetd: démon spojený s internetovým superserverom
- imapd: démon pre server IMAP
- LPD: Démon riadkovej tlačiarne
- memcached: démon ukladania do pamäte cache objektov, ktorý je distribuovaný v pamäti
- mountd: mount daemon
- MySQL: démon pre databázový server MySQL
- pomenovaný: démon pre server DNS
- nfsd: Démon zdieľania súborov v sieti
- nfslock: Pretože nfsd je spojený so službami zamykania súborov, tento démon môže tieto služby spustiť a zastaviť.
- nmbd: démon pre blokovanie sieťových správ
- ntpd: démon pre službu Network Time Protocol
- postfix: démon, ktorý slúži ako agent prenosu pošty. Je to alternatíva k sendmailu.
- Postgresql: démon pre databázový server Postgres
- smerované: démon na správu smerovacích tabuliek
- rpcbind: démon spojený so spojením vzdialeného volania procedúry
- poslať mail: démon, ktorý slúži ako agent prenosu pošty
- smbd: démon pre Samba SMB server
- smtpd: démon protokolu Simple Mail Transfer Protocol
- snmpd: démon pre Simple Network Management Protocol
- kalmáre: démon asociovaný s proxy serverom na ukladanie webových stránok do pamäte cache
- sshd: démon spojený so serverom Secure Shell
- syncd: démon na synchronizáciu systémovej pamäte so systémovými súbormi
- Syslog: démon, ktorý vykonáva protokolovanie systému
- tcpd: tento obálka služby démona vykonáva protokoly obmedzenia prístupu týkajúce sa služieb démona založených na inetd. Tieto obmedzenia implementuje prostredníctvom hostitelia.povoliť a hostitelia.poprieť.
- Telnetd: démon pre server telnet
- vsftpd: démon pre veľmi bezpečný protokol na prenos súborov
- webmin: démon pre webový administračný server
- xinetd: démon spojený s Enhanced Internet Supervisor
- xntd: démon pre sieťový časový server
Či už ste začiatočníci, stredne pokročilí alebo skúsení používatelia vo svete operačných systémov Linux, nikdy sa vám nepodarí oboznámiť sa s niektorým z vyššie uvedených démonov, keď budete zdokonaľovať svoje schopnosti a odborné znalosti v tomto prostredí OS.
Spustenie / zastavenie / reštartovanie démonov: prístup založený na termináli
Teraz, keď máte zoznam užitočných démonov Linuxu, ktoré si musíte zapamätať a preskúmať, je potrebné najskôr vedieť, ako týchto démonov spustiť, zastaviť alebo reštartovať. Po spustení terminálu Linux zvážte nasledujúce pravidlá syntaxe na spustenie, zastavenie a reštartovanie démona vo vašom operačnom systéme Linux.
služba preferovaný-názov-démona štart služba preferovaný-názov démona stop služba preferovaný-daemon-name reštart
Vymeňte preferovaný-démon-meno argument syntaxe s menom démona systému Linux podľa vášho výberu. Môžete si vybrať jedného zo zoznamu démonov zvýrazneného vyššie, pokiaľ je aktívny alebo už je vo vašom systéme Linux definovaný. Napríklad môžeme implementovať praktické použitie vyššie uvedenej syntaxe tak, že sa pokúsime spustiť, zastaviť a reštartovať adémon. Prejdite na ikonu / etc / init.d adresári vo vašom termináli pre zoznam dostupných démonov vo vašom systéme Linux.
Zoznam démonov vašich systémov Linux
Efektívnejší spôsob zaznamenávania dostupných démonov vo vašom systéme Linux namiesto prechodu na / etc / init.d adresár je zoznam všetkých definovaných aktívnych a neaktívnych démonov z tohto adresára jediným príkazom. Nasledujúci príkaz je účinný pri dosahovaní tohto cieľa.
$ service -status-all
Vychýlené kladné [+] a záporné [-] znamienka pred uvedenými názvami démonov naznačujú, že sú buď aktívne, alebo neaktívne.
Práca s používateľom definovanými démonmi
Na úspešné vytvorenie a implementáciu používateľom definovaného démona je potrebné dodržiavať konkrétne pravidlá alebo protokoly. Tieto protokoly vám pomôžu úplne pochopiť vykonávanie démonov v akomkoľvek prostredí Linuxu. Démoni sú tiež dostatočne flexibilní na to, aby mohli komunikovať s modulmi jadra prostredníctvom systémových volaní. Toto rozšírenie funkčnosti démona podporuje jeho interakciu s hardvérovými zariadeniami, ako sú PDA (Personal Digital Assistants), tlačiarňami a životaschopnými externými radičmi. Stavebné kamene démonov tiež prispievajú k charakteristickej sile a flexibilite operačného systému Linux.
Implementáciu relatívneho démona pomocou Pythonu starostlivo demonštruje a dokumentuje Sander Marechal. Pri vytváraní tohto démona sa snažte riadiť poradím spustenia. Najprv musí váš systém Linux nainštalovať balíčky Python, aby mohol úspešne vyvíjať démony. Na inštaláciu Pythonu môžete použiť nasledujúci príkaz.
$ sudo apt nainštalovať python3-pip python3-dev
Odkaz na autorský kód démona Python od Sandera Marechala ponúka aj vylepšenú verziu kódu Python 3. Pomohlo by, keby ste zvážili jeho implementáciu, aby ste lepšie pochopili, ako fungujú démoni.
Ak si nie ste istí, či máte nainštalovaný Python, spustite na svojom termináli Linux nasledujúci príkaz.
$ python3 --verzia
Účel každého démona
Pretože jediný démon je určený na zvládnutie konkrétnej úlohy, mal by ju vykonať do dokonalosti. Predmetná úloha môže byť rovnako jednoduchá ako vytvorenie prehľadu a jeho odoslanie správcovi prostredníctvom služby sendmail alebo taká zložitá ako správa viacerých domén prepojených s viacerými poštovými schránkami. V určitom okamihu bude musieť démon, ktorého sa chystáte vytvoriť, hovoriť s ostatnými existujúcimi démonmi.
interakcia používateľ-démon
Neodporúča sa priama komunikácia medzi používateľom systému a vytvoreným démonom. Ak je to pre démona nevyhnutné, vytvoríte komunikáciu s užívateľom systému. Túto komunikáciu je možné uľahčiť prostredníctvom niečoho ako GUI rozhranie. Táto komunikačná platforma môže mať buď GTK + GUI zložitosť, alebo jednoduchosť sady signálov.
Vytvára sa váš démon
Početné prístupy podporujú vytváranie démonov. Rozhranie príkazového riadku môžete napríklad použiť na démonizáciu skriptu Python nasledujúcim spôsobom:
$ python my_python_script.py &
Môžete uložiť autorský kód démona Python3 od Sandera Marechala do súboru Python a daemonizovať ho pomocou vyššie uvedeného príkazu. Zatiaľ čo vyššie uvedený príkaz terminálu pre vás ľahko vytvorí démona, budete sa musieť vyrovnať s výzvami, ako sú nepredvídateľné výstupy terminálu. Tieto výzvy závisia od toho, ako dobre ste zrekonštruovali svoj kód démona Python. Vyššie uvedený prístup taktiež nepodporuje priradenie súborov zámku PID konkrétnym démonom. Znemožňuje kontrolu ktoréhokoľvek démona, pretože väčšina z nich sa vykoná okamžite. Na druhej strane, ak potrebujete iba jednoduchého démona, vyššie uvedený prístup vám poskytne požadované výsledky démona.
Základná štruktúra démona
Predtým, ako démon vykoná alebo vykoná zamýšľanú funkciu, bude musieť zvážiť niektoré vopred pripravené pravidlá vedúce k jej vykonaniu. Tieto pravidlá si môžete predstaviť ako domáce práce na nízkej úrovni, ktoré vedú k ich skutočnej úlohe. Tieto pravidlá je možné rozdeliť do nasledujúcich krokov.
- Najprv sa vytvorí vidlica z nadradeného procesu
- Nasleduje zmena umask (maska režimu súboru)
- Denníky sa otvárajú na zápis
- Vytvorí sa jedinečný SID (ID relácie)
- Spustenie sa prepne z aktuálneho pracovného adresára do sekundárneho umiestnenia, aby sa zachovala integrita súboru
- Štandardné deskriptory súborov sú zatvorené
- Vykonanie cieleného kódu démona
Viac príkladov implementácií démonov nájdete na GitHub.