Демонизация — это создание демон-процесса. Демонизировать — это создавать демон-процесс. Оба выражения связаны с термином «демон». Давайте сразу отметим, что слова «демон», «демонизация» и «демонизировать» могут использоваться в разных контекстах. Например, в религиозном контексте или в контексте преобладания какой-то культуры или образа («демонизировать язык», «демонизировать человека» и др.). Нас же интересует применение этих терминов в программировании.
«Демон», «демонизировать», «демонизация» — это термины, которые тесно связаны с UNIX-системами, то есть с дистрибутивами Linux. Если вы являетесь пользователем Линукса, значит вы уже сталкивались с этими выражениями. Если только собираетесь стать пользователем Линукс-систем, значит обязательно столкнетесь с этими выражениями. В любом случае вам будет полезно знать, что такое «демон», «демонизировать», «демонизация».
«Демон», «демонизировать», «демонизация» — что это такое?
Демон — это небольшой запущенный фоновый процесс, который работает в UNIX-системе отдельно от общего терминала и создается он процессом «init». Процесс «init» в Линуксе — это процесс с идентификатором «1», который всегда запускается первым в системе. Это он:
проверяет файловую систему;
проверяет порты;
инициирует запуск фоновых процессов(демонов);
и др.
Все процессы, запущенные в Линуксе, являются потомками процесса «init», демоны в том числе.
Демоны работают все время, пока работает операционная система: от момента ее запуска и до момента ее деактивации. У них нет графического интерфейса и, чтобы ими управлять, нужно уметь пользоваться терминалом либо иметь «под рукой» специальные программы. Самое важное, что задача демонов работать таким образом, чтобы их не замечал и не настраивал пользователь. Поэтому тем пользователям, которые самостоятельно настраивали демонов, эта статья не нужна.
По своему принципу, демоны в Линуксе идентичны службам операционной системы Windows. Там тоже для управления службами используется панель управления, либо специальные программы.
Для чего нужны демоны?
Как мы уже писали, что демоны — это фоновые процессы, которые являются потомками основного процесса «init». Чаще всего демоны «отвечают» за какие-то важные системные процессы. Например:
обработка сетевых запросов;
контроль своевременного запуска необходимых системных программ;
прослушивание портов;
синхронизация файлов на разных дисках;
отслеживание памяти;
«слежение» за работой аппаратных устройств, подключенных к компьютеру;
и другие процессы, где нужно «ждать и смотреть».
Демоны в Линуксе можно сравнить с работниками торгового зала в супермаркете, которые:
следят, чтобы полки постоянно были с товаром;
убирают торговое помещение, чтобы оно всегда было чистым;
«сидят на кассе»;
принимают и отгружают товар со склада;
и др.
То есть, демоны — это скрытые, но важные системные скрипты, которые следят за нормальной работой операционной системы. Без них не было бы стабильности в системе. Чаще всего демоны встроены в систему ее же разработчиками, однако если есть необходимость, тогда можно написать демон самостоятельно. Написать демон — это демонизировать какую-то собственную программу.
Как демонизировать собственную программу
Демонизировать собственную программу — это процесс не из самых легких. Просто написать программу и обозначить ее как «демон» не получится. Для этого нужно «поковыряться» в конфигурациях системы.
Мы не зря писали, что демоны — это фоновые процессы, которые инициированы главным процессом «init» в Линукс-системах. Из-за такого положения демонизировать собственную программу можно 2 способами:
Спровоцировать создание демона процессом «init». То есть, это тот случай, когда процесс «init» как бы самостоятельно создает новый демон.
Клонировать уже существующий процесс, а потом адаптировать его «под себя» такой процесс возможен только с применением системных функций «clone()» и «fork()».
Демонизировать — это очень простой процесс, если его описывать словами. Но на деле получается, что создать собственного в Линукс-системе очень не просто. Для этого нужно внимательно изучить «головной процесс» «init» и понимать устройство разветвления всех системных процессов. Поэтому практическое создание демона мы опишем в следующих статьях, чтобы не «раздувать» эту.
Заключение
Можно ли демонизировать собственную программу? Можно, но нужно точно понимать для чего это делать, потому что демонизация — это непростой процесс и нужно понимать для чего ее проводить. С практической стороны, нет никаких ограничений, что мешало бы вам демонизировать собственную программу.
Демон в программировании не имеет ничего общего с религиозным демоном и никакого злого умысла в себе не несет, потому что это всего лишь программа.

Другое