--
говорит cat
не пытаться проанализировать, что стало после него параметрами командной строки.
Как пример, думайте о том, что произошло бы в двух случаях если переменная $PIDFILE
был определен как PIDFILE="--version"
. На моей машине они дают следующие результаты:
$ cat $PIDFILE
cat (GNU coreutils) 6.10
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Torbjorn Granlund and Richard M. Stallman.
$ cat -- $PIDFILE
cat: --version: No such file or directory
Есть ли какая-либо причина, которую Вы не можете переключить на PHP-FPM? Это идет с PHP> = 5.3, и существует патч для включения его для 5,2. Я использовал его приблизительно в течение года теперь, и это было совершенно стабильно без проблем. Это заставило бы Вашу нерестящуюся проблему процесса исчезнуть, поскольку PHP-FPM прозрачно обработал бы уничтожение старых процессов и перезапуск новых для Вас.
Причина PHP_FCGI_MAX_REQUESTS состоит в том, что PHP случайным образом прекратит отвечать на запросы после определенного числа их. Кажется, что эта ошибка, возможно, была частично исправлена в более новых версиях, но во время моего тестирования 5.2.x я заметил, что это произошло многократно.
multiwatch был разработан для этого (для перезапуска дочерних процессов, запускаемых spawn-fcgi) - см. http://cgit.stbuehler.de/gitosis/multiwatch/about/