Демон + Maximum execution time of 30 seconds

Tayson

Новичок
Демон + Maximum execution time of 30 seconds

Есть Демон на порту (сокетные клиенты - 2 шт) , который обрабатывает инфу от клиентов и пишет в базу Мускула. Все работает замечательно, но иногда деман падает и в лог вываливает - Maximum execution time of 30 seconds. Происходит это через разное время, .т.е . может и несколько суток отработать а может и через 12 часов отвалиться.
Демон по такому принципу:
PHP:
while(1) {    

usleep(time_sleep); // задержка перед опросом в милисекундах.(0,1сек)              
    
$currentTime = time();    
if($msgsock = @socket_accept($sock)) {

socket_set_nonblock($msgsock);
...
У тут мне не понятно, почему так происходит, работает 24 часа а отваливается за превышение 30 сек...
И второй вопрос: как отследить что деман отвалился и рестартнуть ?
Запускаю его на хостинге сервисом.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
configuration directive max_execution_time only affect the execution time of the script itself. Any time spent on activity that happens outside the execution of the script such as system calls using system(), stream operations, database queries, etc. is not included when determining the maximum time that the script has been running.
 

Tayson

Новичок
2флопппик Хочете сказать, что только за несколько суток - набегает истинное время работы скрипта в 30 сек ? т.е. все остальное время скрипт простаивает и время не считается ?
 

Crys

Двинутый новичок
2флопппик Хочете сказать, что только за несколько суток - набегает истинное время работы скрипта в 30 сек ? т.е. все остальное время скрипт простаивает и время не считается ?
не простаивает, а сам не делает.. у меня так скрипт через два часа отваливался... там вставки в базу шли в цикле. Вот эти запросы и сожрали два часа.. А сам скрипт работал 30 секунд.
 

Димон

Новичок
Поставь в заголовок скрипта set_time_limit(0xfffffff);

А так можно кроном проверять запущен демон или нет. Что-то типа этого:

ps -ef | grep -v grep | grep daemon
if [ $? -eq 1 ]
then
/sbin/init.d/daemon start
 

dimagolov

Новичок
Димон, судя по твоим выступлениям на форуме ты просто рвешься в группу ReadOnly.
 

whirlwind

TDD infected, paranoid
блокирующие функции не занимают процессорного времени (sleep, accept)
 

crocodile2u

http://vbolshov.org.ru
dimagolov
Да, похоже. И в этом случае ему еще не помешает ignore_user_abort(true);
 
Сверху