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