spawn-fcgi child exited

Michail Baikov lists at baikov.com
Wed Jul 12 11:40:39 MSD 2006


Andrey Y. Ostanovsky wrote:
> Kasper wrote:
>> ./spawn-fcgi -a 127.0.0.1 -p 8888 -f /usr/lib64/php5/bin/php -C 5 -u apache -g 
>> apache
>>
>> На что постоянно получаю:
>> spawn-fcgi.c.211: child exited with: 0, Success
>>
>> Однажды выдал pid, но ps -A - его не показывает netstat -a, открытого порта 
>> 8888 тоже не видит, в чем может быть дело?
>>   
> Скорее всего - быстро отвалился.:) К сожалению, поскольку эти процессы
> своих логов не пишут (не умеют?), то надо делать стороннюю диагностику,
> типа запуска php -i  от юзера apache с просмотром результатов вывода.
>> А nginx сам открывает соккет? Дело в том что я мало знаком с сетевым 
>> взаимодействием. Спасибо.
>>   
> Не, там процессы должны висеть и ждать обращений к ним.
> Я использую примерно такой стартовый скрипт, вроде работает:
> 
> #!/bin/sh
> #
> ## ABSOLUTE path to the spawn-fcgi binary
> SPAWNFCGI="/usr/local/bin/spawn-fcgi"
> 
> ## ABSOLUTE path to the PHP binary
> FCGIPROGRAM="/usr/local/bin/php-cgi"
> 
> FCGISOCKET="/tmp/php-fcgi.sock"
> 
> #
> # number of PHP children to spawn
> PHP_FCGI_CHILD=5
> 
> #
> # maximum number of requests a single PHP process can serve before it is
> restarted
> PHP_FCGI_MAX_REQUESTS=100
> 
> #
> # IP addresses from which PHP should access server connections
> FCGI_WEB_SERVER_ADDRS="127.0.0.1"
> 
> #
> # if this script is run as root, switch to the following user
> USERID=www
> GROUPID=www
> 
> # copy the allowed environment variables
> E="PATH="$PATH" USER="$USERID" GROUP="$GROUPID"
> PHP_FCGI_MAX_REQUESTS="$PHP_FCGI_MAX_REQUESTS
>  
> ################## no config below this line
> 
> if test x$PHP_FCGI_CHILD = x; then
>   PHP_FCGI_CHILD=5
> fi
> 
> export PHP_FCGI_MAX_REQUESTS
> export FCGI_WEB_SERVER_ADDRS
> 
> EX="$SPAWNFCGI -P /var/run/fcgi.pid -s $FCGISOCKET -f \
>     $FCGIPROGRAM -u $USERID -g $GROUPID -C $PHP_FCGI_CHILD"
> 
> case "$1" in
>      start)
>         # clean the environment and set up a new one
>         env -i ${E} $EX
>         ;;
>      stop)
>         # Case STOP
>         kill -TERM `cat /var/run/fcgi.pid`
>         rm -f $FCGISOCKET
>         ;;
>   restart)
>         $0 stop
>         sleep 2
>         $0 start
>         ;;
>         *)
>         echo "Usage: $0 {start|stop|restart}"
>         exit 1
> esac
> 
У меня с этим spawn-fcgi свои траблы - он теряет пиды (может быть в 
связи с рестартами и когда происходит его нормальная остановка - 
ругается на отсутствие указанных в пидах процессов :(

-- 
Mike Baikov <mike at baikov dot com>
GameDot Labs Developer







More information about the nginx-ru mailing list