Вы должны использовать php's pcntl_fork () (как рекомендовано @bmdhacks).
Основными процессами являются: fork, setsid, fork снова, chdir в / и закройте все дескрипторы открытых файлов. Стандартная практика также требует, чтобы вы создали файл с именем /var/run/$NAME
(где $ NAME - имя вашего демона) и записали PID в этот файл, чтобы впоследствии вы могли контролировать выполнение процесса.
Я не программист php, но это стандартный * nix материал.
Лучший пример php, который я могу найти в Google, выглядит так: hello-world-daemon-with-fork
Но он не меняет свой рабочий каталог на '/', и, похоже, он не закрывает дескрипторы открытых файлов (я не уверен, как это будет работать в php), поэтому он не подключен к stdin, stdout, и stderr оригинального процесса.
Я выкопал еще немного и нашел другую статью, которая может помочь с php pcntl_fork ()
И, похоже, есть грушевый модуль System_Daemon , который обрабатывает это для вас (я нашел это через здесь ).