Budući da je operativni sustav Linux okarakteriziran kao multitasking operativni sustav, demon je po definiciji program koji se kontinuirano izvršava kao pozadinski proces. Ukratko, izvršavanje ovog postupka ne ovisi o aktivnoj interakciji korisnika sa sustavom. Uobičajeni korisnik sustava ne može kontrolirati periodično izvršavanje demonskog procesa.
Konvencija o imenovanju koja definira većinu demonskih procesa je jednostruko 'sufiks' d. Ova konvencija imenovanja omogućuje razlikovanje normalnih sistemskih procesa od procesa pokrenutih demonima. Na primjer, sshd je demonski postupak odgovoran za upravljanje dolaznimSSH veze. Još jedan primjer demonskog postupka jesyslogd. Odgovorno je za sustav evidentiranja Linux sustava.
U Linux okruženju pokretanje demona je u vrijeme pokretanja. Budući da je Linux sustav savršen Unix klon, postupak pokretanja kvalificira se kao nadređeni proces demonu. Da biste pokrenuli i zaustavili demone na vašem Linux operativnom sustavu, prvo morate pristupiti/ etc / init.d direktorij skripti na vašem OS-u.
Uobičajene funkcije demona
- Omogućuje vašem sustavu da pravilno odgovori na mrežne zahtjeve pridružujući svaki zahtjev kompatibilnom mrežnom priključku. Tipična mrežna luka kojom upravljaju demoni je luka 80.
- Daemoni omogućuju pokretanje ili izvršavanje planiranih sistemskih zadataka. Poziva se demon odgovoran za ovaj specifični zadatak cron. Stvorit će a cron posao koji će se nositi s periodičnim izvršavanjem vaših planiranih zadataka.
- Daemoni također nude neprocjenjiv doprinos u praćenju performansi vašeg sustava. Na primjer, mogu provjeriti stanje RAID polja ili tvrdog diska.
Korisni demoni servisa Linux
- amd: Auto Mount Daemon
- anacron: Izvršenje vremena odgođenog odgođenog cron zadatka
- apmd: Daemon za napredno upravljanje napajanjem
- atd: Koristi funkcionalnost alata za izvršavanje poslova u redu
- autofs: surađuje s demonom automatskog upravljanja kako bi olakšao montiranje i demontažu uređaja na zahtjev
- crond: demon koji upravlja planiranjem zadataka
- cupsd: demon koji upravlja CUPS ispisom
- DHCP: demon za poslužitelj protokola Internet Bootstrap i protokol za dinamičku konfiguraciju hosta.
- zatvoren: demon usmjeravanja odgovoran za više protokola usmjeravanja. Zamjenjuje usmjereni i egpup
- httpd: demon koji se bavi web poslužiteljima poput Apachea
- inetd: demon povezan s Internet Superserverom
- imapd: demon za IMAP poslužitelj
- lpd: Daemon za linijski pisač
- memcached: demon za predmemoriranje objekata koji se distribuira u memoriji
- mountd: mount demon
- MySQL: demon za MySQL poslužitelj baze podataka
- imenovan: demon za DNS poslužitelj
- nfsd: Daemon za mrežno dijeljenje datoteka
- nfslock: Budući da je nfsd povezan sa uslugama zaključavanja datoteka, ovaj demon može pokretati i zaustavljati te usluge.
- nmbd: demon za mrežni blok poruka
- ntpd: demon za uslugu Network Time Protocol
- postfix: demon koji služi kao agent za transport pošte. Alternativa je sendmailu.
- Postgresql: demon za poslužitelj baze podataka Postgres
- usmjereno: demon za upravljanje tablicama usmjeravanja
- rpcbind: daemon povezan s vezivanjem poziva za daljinski postupak
- poslati mail: demon koji služi kao agent za prijenos pošte
- smbd: demon za Samba SMB poslužitelj
- smtpd: demon za Jednostavni protokol za prijenos pošte
- snmpd: demon za Jednostavan protokol za upravljanje mrežom
- lignje: demon povezan s proxy poslužiteljem za predmemoriranje web stranica
- sshd: demon povezan sa poslužiteljem Secure Shell
- sinkronizirano: demon za sinkronizaciju sistemske memorije sa sistemskim datotekama
- Syslog: demon koji izvodi evidentiranje sustava
- tcpd: ovaj omot usluge demona izvršava protokole ograničenja pristupa koji se odnose na usluge demona temeljenih na inetd-u. Provodi ta ograničenja kroz domaćini.dopustiti i domaćini.poricati.
- Telnetd: demon za telnet poslužitelj
- vsftpd: demon za vrlo siguran protokol za prijenos datoteka
- webmin: demon za web poslužitelj za administraciju
- xinetd: demon povezan s Enhanced Internet Supervisor-om
- xntd: demon za mrežni poslužitelj vremena
Bez obzira jeste li početnik, srednji korisnik ili stručnjak u svijetu operativnog sustava Linux, nikada nećete propustiti upoznati se s bilo kojim od gore navedenih demona dok unapređujete svoje vještine i stručnost u ovom OS okruženju.
Pokretanje / zaustavljanje / ponovno pokretanje demona: pristup zasnovan na terminalu
Sad kad imate popis korisnih Linux demona za pamćenje i istraživanje, prvo što morate znati je kako pokrenuti, zaustaviti ili ponovo pokrenuti te demone. Kada je vaš Linux Terminal pokrenut, uzmite u obzir sljedeća pravila sintakse za pokretanje, zaustavljanje i ponovno pokretanje demona na vašem Linux operativnom sustavu.
usluga poželjno-daemon-name start usluga preferirano-daemon-ime zaustaviti usluga preferirano-daemon-ime ponovno pokretanje
Zamijenite preferirano-daemon-ime argument sintakse s imenom demona sustava Linux po vašem izboru. Možete odabrati jedan s gore istaknutog popisa demona sve dok je aktivan ili je već definiran na vašem Linux sustavu. Na primjer, možemo implementirati praktičnu upotrebu gornje sintakse pokušavajući pokrenuti, zaustaviti i ponovno pokrenuti ademon. Idite na / etc / init.d direktorija na vašem terminalu za popis dostupnih demona na vašem Linux sustavu.
Popis demona vaših Linux sustava
Učinkovitiji način bilježenja dostupnih demona na vašem Linux sustavu umjesto navigacije na / etc / init.d direktorij je da popisuje sve definirane aktivne i neaktivne demone iz tog direktorija jednom naredbom. Sljedeća je naredba učinkovita u postizanju ovog cilja.
$ usluga -status-sve
Pozitivni znakovi [+] i negativni [-] ispred zacrtanih imena demona podrazumijevaju da su aktivni, odnosno neaktivni.
Rad s korisnički definiranim demonima
Moraju se poštivati određena pravila ili protokoli da bi se uspješno kreiralo i implementiralo korisnički definirani demon. Ovi protokoli pomažu vam da u potpunosti shvatite izvršavanje demona u bilo kojem Linux okruženju. Daemoni su također dovoljno fleksibilni da se sučeljavaju s modulima jezgre putem sistemskih poziva. Ovo proširenje funkcionalnosti demona podržava njegovu interakciju s hardverskim uređajima poput PDA-ova (Personal Digital Assistants), pisača i održivih vanjskih upravljačkih ploča. Građevni blokovi demona također doprinose karakterističnoj snazi i fleksibilnosti Linux operativnog sustava.
Sander Marechal pažljivo demonstrira i dokumentira relativnu implementaciju demona pomoću Pythona. Budite pažljivi da slijedite redoslijed izvršenja u stvaranju ovog demona. Prvo, vaš Linux sustav treba instalaciju Python paketa da bi uspješno razvio demone. Da biste instalirali Python, možete upotrijebiti sljedeću naredbu.
$ sudo apt instalirati python3-pip python3-dev
Veza do autorskog Python daemon koda Sandera Marechala također nudi pročišćenu verziju Python 3 koda. Pomoglo bi kad biste razmislili o njegovoj primjeni da biste bolje razumjeli kako rade demoni.
Ako niste sigurni imate li instaliran Python, pokrenite sljedeću naredbu na vašem Linux terminalu.
$ python3 --verzija
Svrha bilo kojeg demona
Budući da je jedan demon posvećen rješavanju određenog zadatka, trebao bi ga izvršiti do savršenstva. Dotični zadatak može biti jednostavan poput izrade izvješća i slanja administratoru putem sendmaila ili složen kao upravljanje više domena povezanih s više poštanskih sandučića. U jednom trenutku, demon koji ćete stvoriti morat će razgovarati s drugim postojećim demonima.
interakcija od korisnika do demona
Obeshrabruje se da korisnik sustava i stvoreni demon izravno komuniciraju. Ako je to potrebno za demon, stvarate za komunikaciju s korisnikom sustava. Ova komunikacija može se olakšati kroz nešto poput GUI sučelja. Ova komunikacijska platforma može imati GTK + GUI složenost ili jednostavnost postavljanja signala.
Stvaranje vašeg demona
Brojni pristupi podržavaju stvaranje demona. Na primjer, možete koristiti sučelje naredbenog retka za demonizaciju Python skripte na sljedeći način:
$ python my_python_script.py &
Možete sačuvati autorski Python3 daemon kôd Sandera Marechala u datoteku Python i demonizirati ga pomoću gornje naredbe. Iako će vam gornja naredba terminala lako stvoriti demon, morat ćete se nositi s izazovima poput nepredvidivih izlaza terminala. Ti izazovi ovise o tome koliko ste dobro izvršili refaktoriranje vašeg Python daemon koda. Također, gornji pristup ne podržava dodjeljivanje datoteka PID zaključavanja određenim demonima. Nemoguće je kontrolirati bilo koji demon jer će se većina njih izvršavati trenutno. S druge strane, ako vam treba samo jednostavni demon, gore spomenuti pristup dat će vam željene rezultate demona.
Osnovna struktura demona
Prije nego što demon izvrši ili izvrši namjeravanu funkciju, morat će razmotriti neka unaprijed stvorena pravila koja vode do njegovog izvršavanja. Ova pravila možete smatrati kućanskim poslovima na niskoj razini koji vode stvarnom zadatku. Ta se pravila mogu raščlaniti na sljedeće korake.
- Prvo se odvija stvaranje vilice od nadređenog postupka
- Slijedi promjena umaske (maske načina rada datoteke)
- Dnevnici se otvaraju za pisanje
- Stvoren je jedinstveni SID (ID sesije)
- Izvršenje se prebacuje s trenutnog radnog direktorija na sekundarno mjesto radi očuvanja cjelovitosti datoteke
- Standardni deskriptori datoteka su zatvoreni
- Izvršenje ciljanog demonskog koda
Više o primjerima implementacija demona možete pronaći na GitHubu.