Демоны в Linux. Что это и пережиток ли?

LinuxПрограммное обеспечениеЧто такое...

Как пользователи компьютера, вы, возможно, слышали, что термин «демон» используется довольно часто. Но что это на самом деле означает?

Этот странный термин — пережиток истории Unix, но демоны все ещё используются. Он является синонимом концепции «службы», задачи, которая выполняется непрерывно, обычно без взаимодействия с пользователем.

Существует несколько распространенных примеров демонов, и даже если вам не нужно точно знать, как они работают, по крайней мере полезно иметь возможность их идентифицировать.

Что такое демон?

Демон или Disk And Execution MONitor — это программа, которая работает в фоновом режиме. Демоны распространены среди сетевых инструментов и задач системного администрирования. Вы даже можете управлять некоторыми из них.

Откуда родом название?

Несмотря на написание, слово Daemon обычно произносится так же, как слово Demon. Но это не имеет ничего общего с мистическими представлениями многих. Фактически, название в конечном итоге происходит из греческой мифологии, как концепция духа, неустанно работающего на заднем плане. В этом смысле, довольно точная формулировка.

Как работают демоны?

В системах Unix термин «демон» часто используется как синоним термина «фоновый процесс». Другими словами, это процесс, который был отключен от любой оболочки и продолжает работать вне графического интерфейса. Настоящий демон также должен назначить себя дочерним процессом специального процесса init, который имеет специальный идентификатор процесса с номером 1.

Другие типичные задачи, связанные с изоляцией демона, включают:

  • Создание «песочницы» путем удаления ненужных переменных из окружения
  • Установка корневого каталога (/) в качестве текущего рабочего каталога процесса
  • Перенаправление описаний файлов ввода, вывода и ошибок в файлы журналов или /dev/null

В других системах, таких как Windows и macOS, также используются демоны. В случае Windows ближайшим эквивалентом являются службы.

Самые распространенные демоны

Cron (crond) — это демон, который выполняет другие программы по расписанию. Большинство Unix-систем настраивают его на автоматический запуск при запуске. Он просыпается раз в минуту, проверяет конфигурационные файлы и выполняет все команды, заданные для запуска в течение этой минуты. Cron достаточно умен, чтобы реагировать на изменения в файлах crontab, когда они меняются. Вам не нужно перезапускать его самостоятельно.

Веб-серверы, такие как httpd компании Apache, часто работают как демоны — именно это означает буква «d». Демон Apache обрабатывает входящие запросы, создавая пул дочерних процессов для распределения нагрузки. Вы можете использовать вспомогательную программу, такую как apachectl, для более легкого управления самим демоном httpd.

Статьи по теме

Наконец, sshd — это еще один распространенный пример демона, на этот раз тот, который обрабатывает SSH-соединения. Опять же, он обычно запускается при загрузке и работает неограниченное время, полагаясь на сигналы для выполнения определенных операций. Например, сигнал SIGHUP заставляет sshd повторно выполнить себя, перезагружая при этом свой конфигурационный файл.

Демоны — жизненно важные поставщики услуг

Демоны работают постоянно, выполняя жизненно важные задачи для обеспечения работы компьютера. Они часто задействуются, когда компьютер должен работать в качестве сервера, действуя от имени других клиентов.