Я использую php-cgi в ubuntu (с nginx), и команда для его запуска:
spawn-fcgi -a 127.0.0.1 -p 9100 -f / usr / bin / php-cgi -P /var/run/fastcgi-php.pid
но иногда процесс php-cgi завершается автоматически, и мне нужно запускать его вручную. Есть ли способ заставить его автоматически перезапускаться, например, написать сценарий инициализации?
Пожалуйста, предложите, спасибо.
Вам действительно стоит использовать PHP-FPM вместо spawn-fcgi. Это менеджер процессов fastcgi, который был написан для решения многих проблем с php-cgi (и, следовательно, с spawn-fcgi по отношению).
Поскольку срок службы PHP версии 5.2.x подошел к концу, вы также должны использовать PHP 5.3.x, что означает, что у вас, скорее всего, уже есть php-fpm, и нужно просто убедиться, что ваш диспетчер пакетов установил эту версию (см. он называется php-fpm или аналогичный). Если вы устанавливаете из исходного кода, это просто флаг времени компиляции, чтобы включить его. (--with-fpm)
Если у вас 5.2.x и вы слишком корпоративны, чтобы ваш начальник мог позволить вам обновиться, вам придется контролировать это с помощью чего-то вроде Руководитель или Монит
Сейчас я использую выскочку (initctl).
http://manpages.ubuntu.com/manpages/lucid/man8/initctl.8.html
Я использую CentOS 6, но думаю, что для Ubuntu процесс аналогичен. Для CentOS создайте файл /etc/init/php-cgi.conf, содержащий:
# Upstart event # nginx_start - start nginx web server / proxy # start on runlevel 3 stop on runlevel [016] console output exec /usr/bin/php-cgi -b 127.0.0.1:9001 respawn respawn limit 10 90
Затем вы можете управлять им с помощью initctl:
initctl start php-cgi initctl status php-cgi initctl stop php-cgi