PHP-скрипт не будет работать в фоновом режиме - PullRequest
4 голосов
/ 19 ноября 2011

Я пытаюсь запустить php CLI-скрипт в фоновом режиме, и он просто не запускается - он имеет статус Stopped SIGTOU (пытается записать вывод) - Вот подробности

  • Mac OS X Lion 10.7.2
  • PHP 5.3.6 с Suhosin-Patch (cli) (построено: 8 сентября 2011 19:34:00)

Я создал базовый скриптtest.php

<?php echo 'Hello world'.PHP_EOL; ?>

Вот результаты различных тестов: -

  • php -f test.php (отображается мир приветствия)
  • php -f test.php >test.log 2>&1 (приветмир помещается в test.log)
  • php -f test.php >test.log 2>&1 & --- я получаю [1]+ Stopped(SIGTTOU) php -f test.php > test.log 2>&1 - и работа просто сидит, ничего не делая, но не регистрируется, однако lsof показывает, что файл журнала открыт

Это как-то связано с PHP?Аналогичный сценарий оболочки выполняется без проблем в фоновом режиме.

Ответы [ 3 ]

6 голосов
/ 11 февраля 2012

Если в вашей сборке php включена readline, просто передайте / dev / null в качестве ввода.

В приведенном выше примере это будет:

php -f test.php </dev/null >test.log 2>&1
1 голос
/ 04 декабря 2011

Это решено сейчас - спасибо всем, кто откликнулся.Проблема заключалась в том, что Apple предоставила PHP, предварительно собранный с ОС - версия CLI была собрана с включенной readline - http://www.php.net/manual/en/intro.readline.php ... это предотвращает любой фоновый запуск сценариев, потому что readline автоматически запускает IO с TTY ...

Моя проблема заключалась в том, что я не мог собрать свою собственную версию PHP из-за этого -> http://forums.macrumors.com/showthread.php?t=1284479 - как только я получил это, я решил, что проблема с моим фоновым скриптом исчезла:)

0 голосов
/ 19 ноября 2011

Ну, PHP-скрипт останавливается, когда его готовое выполнение завершено, то есть простое эхо "Hello World" завершает выполнение, как только оно выводит строку, я думаю, это как-то связано с ней; -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...