Сильно зависит от специфики деятельности, иногда проще перезапускать по cron каждые 5 минут что-то чем сделать настоящий не падающий демон. А так юзайте
// Смотрите идентификатор процесса
$pid = getmypid();
// Смотрите список всех процессов с pid из php и ищите в нём свой демон (если есть ок, если нет - упал)
exec('ps aux', $m);
//Запускайте демона со своим собственным именем
$pid = getmypid();
$title = "my_daemon";
if (!cli_set_process_title($title)) {
echo "Unable to set process title for PID $pid...\n";
exit(1);
} else {
echo "The process title '$title' for PID $pid has been set for your process!\n";
sleep(5);
}