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

Я много слышу о том, что на моем компьютере с Ubuntu работают демоны.

12
задан 22 December 2011 в 10:00

2 ответа

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

Как вы можете видеть слой Демона

0
ответ дан 22 December 2011 в 10:00

Короче говоря, Демон - это фоновый процесс .

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

Разветвить процесс - значит создать его точную копию. Родителем этого процесса, если реальный родитель завершается сразу же, теперь является процесс init в /sbin/init, который первым запускается в каждой Unix-подобной операционной системе. Теперь этот процесс называется Daemon, с ним не связан TTY.

Вот пример демона в Python:

import sys, os, time

pid = os.fork()

# there now exist two processes
if pid > 0: # If this is the parent,
    sys.exit(0) # quit.

# this is the background part:
time.sleep(5)
print "Hello, World!"

Это, строго говоря, еще не один. Вам также нужно будет изменить текущий рабочий каталог, перенаправить стандартный ввод и вывод в лог-файлы и так далее. Вы можете прочитать подробности в этой статье в Википедии .

Если вы запустите пример, вы заметите, что через две секунды он печатает, даже если процесс, запущенный в командной строке, завершен. Копия этого процесса запускается «сейчас» init.

0
ответ дан 22 December 2011 в 10:00

Другие вопросы по тегам:

Похожие вопросы: