Тъй като операционната система Linux се характеризира като многозадачна операционна система, демонът по дефиниция е програма, която непрекъснато се изпълнява като фонов процес. Накратко, изпълнението на този процес не зависи от системното взаимодействие на активен потребител. Нормален потребител на системата не може да контролира периодичното изпълнение на демон процес.
Конвенцията за именуване, която дефинира повечето демонови процеси, е еднобуквената „суфикс“ д. Тази конвенция за именуване дава възможност да се прави разлика между нормални системни процеси и процеси, задвижвани от демони. Например, sshd е демонен процес, отговорен за управлението на входящитеSSH връзки. Друг пример за процес на демон еsyslogd. Той е отговорен за съоръжението за регистриране на системата в Linux.
В Linux среда стартирането на демони е по време на зареждане. Тъй като системата Linux е перфектен клонинг на Unix, инициализиращият процес се квалифицира като родителски процес на демон. За да стартирате и спрете демони на вашата операционна система Linux, първо трябва да осъществите достъп до/ etc / init.д директория на скриптове във вашата операционна система.
Общи функции на демони
- Той позволява на вашата система да реагира правилно на мрежови заявки, като свързва всяка заявка със съвместим мрежов порт. Типичен мрежов порт, обработван от демони, е порт 80.
- Daemons правят възможно изпълнението или изпълнението на планирани системни задачи. Извиква се демонът, отговорен за тази конкретна задача cron. Ще създаде cron работа който ще се справи с периодичното изпълнение на вашите планирани задачи.
- Daemons предлагат и безценен принос в мониторинга на работата на вашата система. Например те могат да проверят състоянието на RAID масива или твърдия диск.
Полезни демони на услугата Linux
- AMD: Auto Mount Daemon
- анакрон: Време за зареждане на изпълнение на забавени cron задачи
- apmd: Daemon за усъвършенствано управление на захранването
- atd: Използва функционалността на инструмента за изпълнение на задания на опашка
- autofs: работи ръка за ръка с демона на automounter, за да улесни монтирането и демонтирането на системни устройства при поискване
- crond: демон, който се справя с планирането на задачи
- cupsd: демон, който обработва CUPS печат
- DHCP: демон както за Internet Bootstrap Protocol Server, така и за Dynamic Host Configuration Protocol.
- затворен: демон за маршрутизация, отговорен за множество маршрутизиращи протоколи. Той замества routed и egpup
- httpd: демон, който се занимава с уеб сървъри като Apache
- inetd: демон, свързан с Internet Superserver
- imapd: демон за IMAP сървъра
- lpd: Линеен принтер Daemon
- memcached: демон за кеширане на обекти, който е разпределен в паметта
- mountd: демон за монтиране
- MySQL: демон за сървъра на базата данни MySQL
- на име: демон за DNS сървър
- nfsd: Демон за споделяне на мрежови файлове
- nfslock: Тъй като nfsd е свързан с услуги за заключване на файлове, този демон може да стартира и спира тези услуги.
- nmbd: демон за блок за мрежови съобщения
- ntpd: демон за услугата Network Time Protocol
- постфикс: демон, който служи като агент за пощенски транспорт. Това е алтернатива на sendmail.
- Postgresql: демон за сървъра на база данни Postgres
- маршрутизиран: демон за управление на маршрутни таблици
- rpcbind: демон, свързан с обвързване на повикване за отдалечена процедура
- изпрати писмо: демон, който служи като агент за прехвърляне на поща
- smbd: демон за Samba SMB сървър
- smtpd: демон за прост протокол за прехвърляне на поща
- snmpd: демон за Прост протокол за управление на мрежата
- калмари: демон, свързан с прокси сървър за кеширане на уеб страници
- sshd: демон, свързан със Secure Shell Server
- syncd: демон за синхронизиране на системната памет със системни файлове
- Syslog: демон, който извършва системно регистриране
- tcpd: тази обвивка на услуга за демони изпълнява протоколи за ограничаване на достъпа, свързани с услугите за демони, базирани на inetd. Той прилага тези ограничения чрез домакини.позволява и домакини.отричам.
- Telnetd: демон за telnet сървъра
- vsftpd: демон за много сигурен протокол за прехвърляне на файлове
- webmin: демон за уеб-базиран сървър за администриране
- xinetd: демон, свързан с Enhanced Internet Supervisor
- xntd: демон за Network Time Server
Независимо дали сте начинаещ, междинен или експертен потребител в света на операционната система Linux, никога няма да пропуснете да се запознаете с някой от горепосочените демони, докато напредвате в своите умения и опит в тази среда на ОС.
Стартиране / спиране / рестартиране на демони: подход, базиран на терминала
След като имате списък с полезни демони на Linux, които да запомните и изследвате, първото нещо, което трябва да знаете, е как да стартирате, спрете или рестартирате тези демони. При стартирането на вашия Linux Terminal, помислете за следните правила за синтаксис, за да стартирате, спрете и рестартирате демон на вашата операционна система Linux.
услуга предпочитано-демон-име старт услуга предпочитан-демон-име спиране рестартиране на услугата предпочитано-демон-име
Заменете предпочитано-демон-име аргумент за синтаксис с избраното име на системния демон на Linux. Можете да изберете такъв от списъка с демони, подчертан по-горе, стига той да е активен или вече дефиниран във вашата Linux система. Например можем да приложим практическото използване на горния синтаксис, като се опитаме да стартираме, спрем и рестартираме aдемон. Придвижете се до / etc / init.д на вашия терминал за списъка с наличните демони във вашата Linux система.
Изброяване на демоните на вашите Linux системи
По-ефективен начин за отбелязване на наличните демони във вашата Linux система, вместо да навигирате към / etc / init.д директория е да изброи всички дефинирани активни и неактивни демони от тази директория с една команда. Следващата команда е ефективна за постигане на тази цел.
$ service -status-all
Фиксираните положителни знаци [+] и отрицателни [-], предхождащи изброените имена на демони, означават, че те са или активни, или неактивни, съответно.
Работа с дефинирани от потребителя демони
Трябва да се спазват специфични правила или протоколи, за да се създаде и внедри успешно дефиниран от потребителя демон. Тези протоколи ви помагат да разберете напълно изпълнението на демони във всяка Linux среда. Демоните също са достатъчно гъвкави, за да взаимодействат с модулите на ядрото чрез системни повиквания. Това разтягане на функционалността на демона поддържа взаимодействието му с хардуерни устройства като PDA (персонални цифрови асистенти), принтери и жизнеспособни външни платки на контролера. Градивните елементи на демоните също допринасят за характерната мощ и гъвкавост на операционната система Linux.
Релатираща реализация на демон с помощта на Python е внимателно демонстрирана и документирана от Sander Marechal. Искайте да следвате реда за изпълнение при създаването на този демон. Първо, вашата Linux система се нуждае от инсталиране на пакети Python, за да разработи успешно демони. За да инсталирате Python, можете да използвате следната команда.
$ sudo apt инсталира python3-pip python3-dev
Връзката към авторския демонен код на Sander Marechal предлага и прецизирана версия на кода на Python 3. Полезно би било, ако обмислите прилагането му, за да разберете по-добре как работят демоните.
Ако не сте сигурни дали имате инсталиран Python, изпълнете следната команда на вашия Linux терминал.
$ python3 - версия
Целта на всеки демон
Тъй като един демон е посветен на обработка на определена задача, той трябва да я изпълни до съвършенство. Въпросната задача може да бъде толкова проста, колкото създаването на отчет и изпращането му до администратор чрез sendmail или толкова сложна, колкото управлението на множество домейни, свързани с множество пощенски кутии. В един момент демонът, който ще създадете, ще трябва да говори с други съществуващи демони.
взаимодействие между потребител и демон
Обезсърчено е потребителят на системата и създаденият демон да комуникират директно. Ако е необходимо за демона, вие създавате, за да комуникирате със системен потребител. Тази комуникация може да бъде улеснена чрез нещо като GUI интерфейс. Тази комуникационна платформа може да има GTK + GUI сложност или простота на сигнала.
Създаване на вашия демон
Многобройни подходи подкрепят създаването на демони. Например можете да използвате интерфейса на командния ред, за да демонизирате скрипт на Python, както следва:
$ python my_python_script.py &
Можете да запазите авторския демон на Sander Marechal Python3 демонов код на Python файл и да го демонизирате с горната команда. Докато горната команда на терминала лесно ще създаде демон за вас, ще трябва да се справите с предизвикателства като непредсказуеми терминални изходи. Тези предизвикателства зависят от това колко добре сте реконструирали вашия демонов код на Python. Освен това горният подход не поддържа присвояване на PID заключващи файлове на конкретни демони. Това прави невъзможно управлението на който и да е демон, тъй като повечето от тях ще се изпълняват мигновено. От друга страна, ако имате нужда само от прост демон, гореспоменатият подход ще ви даде желаните резултати от демона.
Основна структура на демона
Преди демон да изпълни или изпълни предвидена функция, той ще трябва да разгледа някои предварително измислени правила, водещи до изпълнението му. Можете да мислите за тези правила като домакинска работа на ниско ниво, водеща до действителната му задача. Тези правила могат да бъдат разделени на следните стъпки.
- Създаването на вилица от родителски процес се извършва първо
- Следва промяна на umask (маска за файлов режим)
- Дневниците се отварят за писане
- Създава се уникален SID (Session ID)
- Изпълнението превключва от текущата работна директория към вторично място, за да се запази целостта на файла
- Стандартните дескриптори на файлове са затворени
- Изпълнение на целевия демон код
Повече за примерни изпълнения на демони можете да намерите на GitHub.