Демон (Daemon)
Демон — это фоновый процесс в Linux, который:
-
работает без прямого участия пользователя;
-
запускается при старте системы или по требованию;
-
не привязан к конкретному терминалу;
-
выполняет системные задачи или обслуживает запросы других программ;
-
обычно имеет имя, заканчивающееся на
d(например,sshd,httpd,mysqld).
Примеры демонов:
-
sshd— обрабатывает входящие SSH‑подключения; -
crond— запускает задачи по расписанию; -
systemd— управляет другими службами; -
rsyslogd— собирает системные журналы.
Сервис (Service)
Сервис — это конфигурация для управления демоном (или группой демонов) через систему инициализации (чаще всего — systemd). По сути, это «инструкция» для запуска, остановки и мониторинга демона.
Сервис описывается в файле юнита (unit file) с расширением .service. В нём задаются:
-
команда для запуска демона (
ExecStart); -
условия автозапуска (
WantedBy); -
правила перезапуска при сбоях (
Restart); -
зависимости от других служб (
After,Requires); -
ограничения ресурсов и т. д.
Пример: сервис ssh.service управляет демоном sshd.
Ключевые отличия
| Параметр | Демон (Daemon) | Сервис (Service) |
|---|---|---|
| Что это | Процесс в памяти (программа, выполняющая задачу) | Конфигурационный файл (инструкция для управления процессом) |
| Сущность | Программный процесс (PID) | Текстовый файл с настройками (например, /lib/systemd/system/ssh.service) |
| Цель | Выполнять работу (обслуживать сеть, управлять задачами и т. п.) | Управлять жизненным циклом демона (запускать, останавливать, перезапускать) |
| Управление | Через сигналы ОС (kill, SIGTERM) |
Через systemctl (start, stop, restart, enable) |
| Видимость | Виден в списке процессов (ps aux, top) |
Описан в файлах юнитов systemd |
Практический пример: SSH
-
Демон:
/usr/sbin/sshd— программа, которая слушает порт 22 и обрабатывает SSH‑подключения. -
Сервис:
/lib/systemd/system/ssh.service— файл, содержащий команды дляsystemd:-
как запустить
sshd; -
перезапустить его при падении;
-
запустить при старте системы.
-
Команды:
|
1 2 3 4 5 6 7 8 |
# Посмотреть статус сервиса (и связанного с ним демона) systemctl status ssh.service # Запустить сервис (systemd запустит демон sshd) systemctl start ssh.service # Найти запущенный демон в процессах ps aux | grep sshd |
Краткий итог
-
Демон — рабочий, который выполняет задачу в фоне (процесс).
-
Сервис — инструкция для менеджера служб (
systemd), описывающая, как управлять этим рабочим (файл конфигурации).
Проще говоря: сервис — это «управляющая оболочка» для демона. Вы управляете сервисами (systemctl), а они, в свою очередь, контролируют демоны.