запустить дочерний процесс и умереть. как?

sense

Guest
запустить дочерний процесс и умереть. как?

Задача такова:
по крону взлетает скрипт и в зависимости от условий (наличие записей в базе) должен запустить несколько дочерних процессов (они будут работать очень долго) а сам умереть.

т.е. вопрос состоит в том, как сделать чтоб дочерние процессы остались работать после того как родительский процес exit-нулся?

Ни в форуме ни в факах ничего не нашёл, эксперименты с EXEC и POPEN приводят ктому что дочерние падают вместе с родителем.

Примеры и ссылки на решение подобной проблемы приветствуются.
 

morti

Новичок
Я вообщем эксперемнтировал с такой проблемой, пытался выдать хидер локатион на определенное условие, но так ни к чему ни пришел. Потом мне сказали что лучше дробить на более мелкие скрипты и все засовывать в крон.

А из родительского вызвать ещё один да так чтобы после этого умер родительский мне кажется это не реально.
 

sense

Guest
пытался выдать хидер локатион
у меня скрипт запускается по крону, т.е. не под апачем, а как консольное приложение

кто в юниксе силён, подскажите...
ведь в шеле это как-то вообще тривиально делается, вроде просто & добавляется, значит это совершенно стандартная для юникса процедура... а вот как это на ПХП сделать, уже голову сломал (и несколько раз чуть от админа не получил - наплодил зомби кучу) :-(

Да, если это важно, ПХП 4, пятёрочные функции (если proc_* такое умеют) мало помогут - на хосте 4ка
 

ForJest

- свежая кровь
sense
покопай форум профи. Я видел готовый класс демона на PHP - его young вроде писал.
 

sense

Guest
Спасибо за ссылки.
Примеров много, но что-то как не пытался... если родительский процесс останавливается, то и дочерние останавливаются... может это ещё и от настроек самого сервера зависит....

Решил задачу чуточку по другому:
Вешаю консольный скрипт на крон, который запускаясь проверяет, есть ли он уже работающий или нет. Если есть то ничго не делает - сразу exit, если нет - бесконечно крутит цикл - проверяет надо ли кого запустить, все ли запущенные работают (заодно и проблема упавших по дороге процессов решена) и спит какое-то время, потом снова.
 
Сверху