Как уже отмечали другие, в разных версиях PHP есть проблемы со сборщиками мусора. Конечно, если вы знаете, что ваша версия не имеет таких проблем, вы устраните эту проблему. Суть в том, что вы не не знаете (наверняка), пока не напишите демон и не запустите его через valgrind, чтобы проверить, работает ли установленный PHP на какой-либо машине. Таким образом, вы можете написать это, просто чтобы обнаружить, что то, что, по мнению Zend, исправлено, все еще может содержать ошибки, или вы имеете дело с немного более старой версией PHP или некоторым расширением. Icky.
Другая проблема - несколько глючные сигналы. По моему опыту, обработчики сигналов не всегда корректно вводятся с помощью PHP, особенно когда сигнал ставится в очередь, а не объединяется. Это может не быть проблемой для вас, т. Е. Если вам просто нужно обработать SIGINT / SIGUSR1 / SIGUSR2 / SIGHUP.
Итак, я предлагаю:
Если демон простой, продолжайте и используйте PHP. Если кажется, что он будет достаточно сложным или выделит много памяти, вы можете написать его на C после создания прототипа в PHP.
Я довольно суровый человек. Тем не менее, я не вижу ничего плохого в том, чтобы быстро реализовать что-то с помощью PHP (за исключением случаев, которые я объяснил). Я также не вижу ничего плохого в использовании PHP для создания прототипа чего-то, что может или не может быть позже переписано в C. Например, обработка содержимого базы данных будет намного проще, если вы используете PHP, по сравнению с управлением обратными вызовами с использованием других интерфейсов в C. в этом случае, для «одного раза», вы наверняка сделаете это намного быстрее.