Перезапуск апача (Parent: child process exited with status 255 -- Restarting)

  • Автор темы Автор темы WBS
  • Дата начала Дата начала

WBS

Новичок
Перезапуск апача (Parent: child process exited with status 255 -- Restarting)

Необходимо, чтобы несколько копий скрипта job.php работали неограниченно долгое время.
Из скрипта start.php я запускаю 20 копий job.php (этакая реализация многопоточности):

Код:
for ($i=1; $i<=20; $i++) {
  $pointer = fsockopen("localhost", 80);
  stream_set_timeout($pointer, 0);
  fputs($pointer, "GET /job.php?proc_id={$i} HTTP/1.1\r\nHost: localhost\r\n\r\n");
  fread($pointer, 1000);
  fclose($pointer);
}
В job.php имеется бесконечный цикл, который можно прервать извне (изменив некоторое значение в БД), завершив работу скрипта. В цикле используется MySQL и CURL (скрипт открывает HTML-страницы и заносит нужную информацию в БД).

Скрипты работают несколько часов, пока не упадет апач с записью в логах:
[notice] Parent: child process exited with status 255 -- Restarting.

Было подозрение на утечку памяти. Попробовал из цикла перезапускать поток (скрипт), завершая работу текущего. Не помогло, апач опять упал. В чем может быть проблема?

Конфигурация системы:
Windows 7 (x64)
Apache 2.2.14
PHP 5.3.1
MySQL 5.1.42 (x64)
 
Из скрипта start.php я запускаю 20 копий job.php (этакая реализация многопоточности):
А зачем это делать так извращенно?

есть ведь pcntl-fork или system на худой конец.
 
Автор оригинала: Dovg
А зачем это делать так извращенно?
есть ведь pcntl-fork или system на худой конец.
pcntl-fork я никогда не использовал, но насколько я понимаю, мой вариант более универсален: работает в Win + будет работать у любого хостера.
Вы думаете, что проблема именно в реализации многопоточности?

Автор оригинала: dimagolov
многопоточность... на win... не смешно
Тут, действительно, нет ничего смешного. Если Вы хотели посмеяться, то Вы ошиблись сайтом.

Автор оригинала: dimagolov
воруем контент?
Нет, с чего Вы взяли?

По теме топика...
Подобная проблема в WinXP не наблюдается. Т.е. возможно дело в Windows 7. Но пока не могу понять, в чем именно заключается проблема.
 
Автор оригинала: dimagolov
поясните что за страницы и что за информация
Это не имеет никакого отношения к теме топика...

Существует огромное количество специфических задач, которые решаются по описанной мной схеме (открываем страницу => сохраняем нужную информацию). У меня таких задач несколько, например
- сбор позиций страниц сайтов в поисковике по большому списку ключевиков,
- проверка сайтов на работоспособность,
- и т.д.

Многие другие задачи:
- составление карты сайта,
- скачивание и анализ страниц конкурентов,
- сбор и анализ бэков сайта,
- авторегистраторы и-мейлов и фрихостов,
- авторегистраторы в каталогах.
как и все мои, не имеют никакого отношения к сохранению текстового содержания (контента). Но даже те задачи, которые предполагают скачивание и сохранение контента, зачастую не имеют никакого отношения к воровству.

Например:
- многочисленные спайдеры поисковиков,
- RSS-ридеры,
- другие программы-агрегаторы.

Вот я и удивляюсь, почему вместо того, чтобы высказаться по теме (и помочь решить проблему), Вы решили затронуть тему воровства контента :).

-~{}~ 07.03.10 21:00:

На данный момент попробовал следующее...

1. Установил новую версию PHP 5.3.2.

2. Добавлял строки
EnableSendfile Off
EnableMMAP Off
Win32DisableAcceptEx
в соответствии с рекомендацией на оф. сайте Апача.

3. Добавил функцию mysql_free_result() после использования каждого запроса "SELECT" к БД.

4. Установил новую версию Apache 2.2.15.

Пока ничего не помогло.

Удалось почерпнуть немного новой информации из журнала событий Windows. За секунду до перезапуска Apache в журнал заносится ошибка.
Имя сбойного приложения: httpd.exe, версия: 2.2.15.0.
Имя сбойного модуля: php_curl.dll, версия: 5.3.2.0.

Все еще требуется помощь в решении проблемы. Хотя бы какие-то новые идеи...
 
Это не имеет никакого отношения к теме топика...
зато имеет отношение к правилам форума. я их уважаю и не желаю нарушать, потому и интересуюсь.

-~{}~ 07.03.10 14:31:

строго по теме. отлаживайте, выясняйте почему вылетает curl, причем так жестоко.
 
абсолютно идентичная проблема!!!
перезапуск и все тут!

насчет воровства - что за бред! - разве сбор титлов, к примеру, это нарушение?
или PR и тИЦ... - короче завязывайте говорить не по теме!

а кто сталкивался помогите!

тестировал сбор статистики на VPS - но там банально зашкаливал kmemsize,
затем перенёс сбор на личную машину - тут собственно и столкнулся с падением апача.

товарищи! надо решать :)
 
скорее всего апач радостно балдеет от факта что он генерит страницу уже несколько часов
почему бы не рекурсивно себя вызывать?зачем было такое извращение городить
 
Автор оригинала: tz-lom
скорее всего апач радостно балдеет от факта что он генерит страницу уже несколько часов
почему бы не рекурсивно себя вызывать?зачем было такое извращение городить
какую такую страницу он генерит? о чем вы говорите?
выполняется скрипт - без браузера.
 
>>столкнулся с падением апача
>>выполняется скрипт - без браузер
ты уж определись
 
marker
так запускай 20 копий из консоли, а не http запросом на localhost
тогда как минимум мимо апача все будет проходить и max_execution_time никак не будет влиять
 
если не из браузера то спешу вас уведомить что крон можно написать на баше или даже на батниках
 
Автор оригинала: tz-lom
если не из браузера то спешу вас уведомить что крон можно написать на баше или даже на батниках
товарищи кто вам сказал что скрипты запускаются из браузера? - даже автор темы такое не говорил!
у меня 100 скриптов - неужели я их в браузере запускаю? :)

nnCron или стандартный планировщик (оба варианта пробовал) пинают 100 bat файлов
следующего содержания:
curl.exe http://test.local/test(0-99).php

через некоторое время апач умирает.

прошу вас если участвуете (что замечательно) - читайте внимательнее и постарайтесь вникнуть.

-~{}~ 01.07.10 13:56:

кстати моя параллельная тема
http://sql.ru/forum/actualthread.aspx?bid=18&tid=770839
 
marker, ты вообще в курсе, что существует PHP CLI и запуск скриптов непосредственно им, без какого-либо веб-сервера?
 
Автор оригинала: dimagolov
marker, ты вообще в курсе, что существует PHP CLI и запуск скриптов непосредственно им, без какого-либо веб-сервера?
нет не вкурсе - и ничего в этом позорного не вижу.
я как и вы много чего не знаю...
для этого и придуманы форумы, я думаю - помогать, направлять ищущего в нужное русло.
а не письк@ми мериться.
 
marker, ну так раз теперь в курсе, то кончай страдать фигней и запускай свои скрипты через CLI в кроне. апач при этом задействован не будет вообще и проблемы не возникнет.
 
Может кому-нибудь пригодится...
Моя проблема уже давно разрешилась благодаря прописыванию опции

curl_setopt($ch, CURLOPT_DNS_USE_GLOBAL_CACHE, FALSE);
 
Сверху