Чтобы запустить сервер apache2 из терминала, запустите следующую команду.
sudo /etc/init.d/apache2 start
Чтобы он запускался автоматически при загрузке, выполните команду следующим образом:
sudo update-rc.d apache2 enable
Короче говоря, демон - это фоновый процесс.
Демоны могут быть просто обычными программами, которые работают в фоновом режиме, однако большинство из них создаются путем запуска процесса, его разветвления и выхода из родительского процесса.
Разветвить процесс - значит создать его точную копию. Родителем этого процесса, если реальный родитель завершается сразу же, теперь является процесс 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.
В многозадачных компьютерных операционных системах демон - это компьютерная программа, которая запускается как фоновый процесс, а не находится под непосредственным контролем интерактивного пользователя. Традиционно имена процессов демона заканчиваются буквой d, чтобы прояснить, что процесс на самом деле является демоном, и провести различие между демоном и обычной компьютерной программой. Например, syslogd - это демон, который реализует средство ведения журнала системы, а sshd - это демон, который обслуживает входящие SSH-соединения.
Как вы можете видеть уровень демона
/proc/*/fd
). Хорошо ведущий себя демон полностью отсоединится от tty, отказавшись от ручек для stdout, stderr и stdin. – Stefano Palazzo♦ 23 June 2016 в 08:08