Я чую багато розмов про демонів, що працюють на моєму комп'ютері Ubuntu - що вони?
Я чую багато розмов про демонів, що працюють на моєму комп'ютері Ubuntu - що вони?
Відповіді:
Коротше кажучи, демон - це фоновий процес .
Демони можуть бути просто звичайними програмами, які працюють у фоновому режимі, однак більшість створюються шляхом запуску процесу, розгортання і виходу з батьківського.
Розпакувати процес означає створити точну його копію. Батьком цього процесу, якщо справжній батько припиняється відразу, тепер є процес init/sbin/init
, який є першим, що запускається в кожній Unix-подібній операційній системі. Тепер процес називається демоном, він не має з ним пов'язаного 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!"
Це ще не одне, строго кажучи. Вам також доведеться змінити поточний робочий каталог, перенаправити стандартний вхід і вихід на журнали-файли тощо. Ви можете прочитати деталі горі в цій статті у Вікіпедії .
Якщо запустити приклад, ви помітите, через дві секунди він надрукується, навіть незважаючи на те, що процес, розпочатий у командному рядку, закінчився. Копія цього процесу зараз виконується "by" init.
/proc/*/fd
). Добре поведений демон повністю відірветься від tty, відмовившись від ручок для stdout, stderr та stdin.
У багатозадачних комп'ютерних операційних системах демон - це комп'ютерна програма, яка працює як фоновий процес, а не знаходиться під безпосереднім контролем інтерактивного користувача. Традиційно назви процесу демона закінчуються буквою d, для уточнення того, що процес насправді є демоном, і для розмежування демона від звичайної комп'ютерної програми. Наприклад, syslogd - це демон, що реалізує систему системного журналу, а sshd - демон, який обслуговує вхідні SSH-з'єднання.
Як ви бачите шар Демона