Як завзятий користувач комп’ютера, ви, можливо, часто чули термін «демон». Але що він означає насправді?
Цей дивний термін – пережиток історії Unix, але демони використовуються і сьогодні. Цей термін є синонімом поняття «сервіс» – завдання, яке виконується постійно, зазвичай без участі користувача.
Існує кілька поширених прикладів демонів, і навіть якщо вам не потрібно знати, як саме вони працюють, принаймні, корисно вміти їх ідентифікувати.
Що таке демон?
Daemon або Disk And Execution MONitor – це програма, яка працює у фоновому режимі, а не в інтерактивному. Демони широко поширені серед мережевих інструментів і завдань системного адміністрування. Ви можете управляти деякими демонами, посилаючи їм сигнали.
Як вимовляється слово «демон»?
Попри гадану очевидність, слово «Daemon» зазвичай вимовляється, так само як і слово «демон». Будьте впевнені, воно не має нічого спільного з сатанинськими ритуалами. Насправді назва походить з грецької міфології та концепції духу-провідника, який невпинно працює на задньому плані. У цьому сенсі це дуже влучна назва!
Як працюють демони?
У системах Unix термін демон часто використовується як взаємозамінний з терміном фоновий процес. Іншими словами, це процес, який був від’єднаний від будь-якої оболонки та залишиться активним неінтерактивному. Справжній демон також повинен призначити себе дочірнім процесом спеціального процесу init, який має спеціальний ідентифікатор процесу з номером 1.
Інші типові завдання, пов’язані з ізоляцією демона, включають:
- Створення «пісочниці» шляхом видалення непотрібних змінних з його оточення.
- Установка кореневого каталогу (/) в якості поточного робочого каталогу процесу.
- Перенаправлення описів файлів введення, виведення і помилок у файли журналів або /dev/null.
В інших системах, таких як Windows і macOS, також використовуються демони. У разі Windows найближчим еквівалентом є служби.
Якими є деякі поширені демони?
Cron (crond) – це демон, який виконує інші програми за розкладом. Більшість Unix-систем налаштовують його на автоматичний запуск при запуску. Він прокидається раз на хвилину, перевіряє конфігураційні файли та виконує всі команди, задані для запуску протягом цієї хвилини. Cron досить розумний, щоб реагувати на зміни в файлах crontab, коли вони змінюються. Вам не потрібно перезапускати його самостійно.
Веб-сервери, такі, як httpd Apache, часто працюють як демони – саме це означає буква «d». Демон Apache обробляє вхідні запити, створюючи пул дочірніх процесів для розподілу навантаження. Ви можете використовувати допоміжну програму, таку як apachectl, для більш легкого контролю над самим демоном httpd.
Нарешті, sshd – ще один поширений приклад демона, на цей раз для обробки SSH-з’єднань. Знову ж таки, він зазвичай запускається при завантаженні та працює необмежений час, покладаючись на сигнали для виконання певних операцій. Наприклад, сигнал SIGHUP змушує sshd повторно виконати себе, перезавантажуючи при цьому свій конфігураційний файл.
Демони є постачальниками життєво важливих послуг
Демони працюють постійно, виконуючи життєво важливі завдання для підтримки працездатності комп’ютера. Вони часто залучаються, коли комп’ютеру необхідно працювати в якості сервера, діючи від імені інших клієнтів.
Демони є життєво важливим компонентом сервера Linux. Якщо ви новачок в налаштуванні сервера, ознайомтеся з нашими порадами щодо початку роботи.