ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: mod_perl and waitpid() failed (10: No child processes)



Hello!

On Fri, Mar 12, 2010 at 01:04:21PM +0200, Vasil Mikhalenya wrote:

> Приветствую,
> 
> Т.к. ответа на письмо в
> рассылку<http://forum.nginx.org/read.php?21,60474,60474>я не получил,
> нашел единственный способ реализовать данный функционал -
> используя mod_perl.
> И все вроде бы получилось, обработку исключительных ситуаций оставил на
> потом, и когда пришло это "потом", с ужасом обнаружил что не могу обработать
> код ответа порожденного процесса.
> 
> в перл модуле это следующий код:
> 
> if ( (system("wget $uri -O '$path' > /dev/null 2>&1") ) or ( system("mogrify
> -resize $size '$path' > /dev/null 2>&1") ) ) {
> 
> в логе такое
> 
> ==> error.log <==
> 2010/03/12 13:02:53 [notice] 10842#0: signal 17 (SIGCHLD) received
> 2010/03/12 13:02:53 [alert] 10842#0: waitpid() failed (10: No child
> processes)
> 
> Видел что подобная тема поднималась в рассылке, но в чем проблема так и не
> понял. Использовать Mechanize не предлагайте, работает гораздо дольше
> wget'а.
> Поясните почему нельзя или как можно получить код возврата процесса.

Нельзя потому что код блокируется, а значит блокирует весь рабочий 
процесс nginx'а.

Ну а то что наблюдается - это ерунда.  Просто 
SIGCHLD по завершению порождённого вами процесса попал в 
стандартный обработчик nginx'а, а он на это не расчитан.

Используйте встроенный перл для подсчёта md5, а 
выкачку/сохранение/resize делайте с помощью 
proxy_pass/proxy_store/image_filter соответственно.

Maxim Dounin

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.