У Linux демон (daemon) - це процес, який працює у фоновому режимі без прямої участі користувача. Демони є частиною операційної системи і забезпечують низку функцій, таких як служби мережі, дискові служби, служби друку тощо.
Зазвичай запускаються під час старту системи і залишаються активними у фоновому режимі, доки систему не буде вимкнено. Вони не мають прямого інтерфейсу користувача і зазвичай управляються через конфігураційні файли або команди командного рядка.
Демони в Linux мають зазвичай ім'я, що закінчується на букву "d", наприклад, httpd, named і sshd. Вони запускаються за допомогою спеціальних команд, таких як systemctl
, service
або daemon
. Є важливою частиною операційної системи Linux, оскільки вони забезпечують функціональність і працездатність різних служб і додатків у фоновому режимі.
Демони в Linux можуть бути запущені кількома способами. Розглянемо найпоширеніші методи запуску.
За допомогою команди service
можна запустити, зупинити і перезапустити демон на Linux-системах, що використовують init-скрипти. Наприклад, щоб запустити демон Apache HTTP Server, потрібно виконати таку команду:
sudo service apache2 start
Команда systemctl
використовується для керування демонами в Linux-системах, що використовують systemd
. Наприклад, щоб запустити демон SSH, потрібно виконати таку команду:
sudo systemctl start sshd
У деяких Linux-дистрибутивах демони можуть бути запущені через init-скрипти, які знаходяться в директорії /etc/init.d.
Наприклад, щоб запустити демон MySQL, потрібно виконати таку команду:
sudo /etc/init.d/mysql start
У Linux-системах, що використовують systemd,
для запуску демонів рекомендується використовувати unit-файли. Unit-файли є текстовими файлами, які містять опис служби або процесу, який необхідно запустити в системі. У них вказуються параметри запуску демона, як-от користувач, група, робоча директорія, команда запуску та інші опції.
Unit-файли зберігаються в директорії /etc/systemd/system/
. У цій директорії можна створювати свої власні unit-файли або змінювати вже наявні. Після створення або зміни unit-файлу, необхідно перезавантажити systemd
за допомогою команди systemctl daemon-reload
, щоб зміни набули чинності.