Путь к LINUX

         

Демоны и фоновые процессы


Загрузка демонов и фоновых программ осуществляется

обычно именно на этапе загрузки системы. И для того, чтобы детально

разобраться в происходящих процессах необходимо, по меньшей мере

представлять, что они из себя представляют.

Демон

(от английского demon или daemon-встречаются обе транскрипции!)

представляет собой программу выполняющуюся в фоновом режиме,

незаметно для пользователя и дополняющую операционную систему

каким либо специальным сервисом. Происхождение названия не имеет

ничего общего с ужасами потустороннего мира или игрой DOOM, и

представляет собой акроним от "Disk And Execution MONitor".

Основная идея, положенная в основу демонов, состоит в том, что

эта программа не вызывается пользователем в явной форме, а спокойно



ожидает в памяти какого-либо определенного события. Инициатор

генерации события может и не подозревать, что в дебрях оперативной

памяти его подстерегает голодный демон (а иногда программа может

выдать квитанцию о выполнении той или иной операции только в том

случае, если она передала информацию соответствующему демону).

Характерный пример - работа с принтером, при котором программа

LPR передает данные демону управления печатью LPD. При постановке

задачи в очередь на печать LPR даже не интересуется наличием в

памяти демона печати, а только помещает печатаемый файл в каталог

спулинга.

Впрочем, демоны как обработчики событий довольно

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

искусственного интеллекта. Так, программа обслуживания базы знаний

может использовать демонов для реализации машины вывода. При добавлении

в базу знаний новой информации активизируются различные демоны

(какие именно, определяется содержимым информации), которые переваривают

входной поток данных и создают новое правило, которое в свою очередь

может пробудить к жизни других демонов и так далее. В результате

обновление базы знаний выполняется в фоновом режиме, а основная

программа в это время может продолжать выполнение своей главной


задачи.

Мы уже упоминали об одном демоне, к которому

каждый UNIX-программист должен относится с почтением. Это /etc/update

- программа выполняющая синхронизацию дисков (системный вызов

sync) каждые тридцать секунд.

Есть и другие полезные демоны, которых вы

можете обнаружить с помощью команды ps -ax (показать все процессы,

в том числе и те, которые запущены другими пользователями). Это

syslogd и crond. Первый из них ведет системный журнал, который

помогает системному администратору разобраться в причинах сбоев

и неполадок, а также обнаружить злоумышленников, пытающихся взломать

защиту вашей системы, а второй...... Впрочем, чтобы выяснить это

вы всегда можете воспользоваться он-лайновой системой помощи.

Отмечу попутно, что man не всегда сразу же

находит нужную информацию. Связано это с тем, что все данные разделены

на несколько страниц. При этом на первой странице размещается

описание команд, на второй - системные вызовы, а на восьмой -

конфигурационные файлы. Поэтому, имеет смысл указать программе,

на какой странице вы рассчитываете найти интересующую вас тему.

А как это сделать - вы можете узнать, воспользовавшись командой

man man - получить подсказку по команде man.

Демоны, как правило, стартуют сразу же после

окончания загрузки системы и не нуждаются в присутствии активных

пользователей. Поэтому вы можете организовать работу UNIX-системы

без участия человека, например, создав FTP-сервер или BBS, которые

запускаются в автоматическом режиме (об этом мы еще поговорим).


Содержание раздела