簡體   English   中英

PHP腳本不會在后台運行

[英]PHP script won't run in the background

我試圖在后台運行一個php CLI腳本,它只是不會運行 - 它的狀態為Stopped SIGTOU(試圖寫輸出) - 這是詳細信息

  • Mac OS X Lion 10.7.2
  • PHP 5.3.6與Suhosin-Patch(cli)(內置:2011年9月8日19:34:00)

我創建了一個基本腳本test.php

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

以下是各種測試的結果: -

  • php -f test.php (Hello world顯示)
  • php -f test.php >test.log 2>&1 (Hello world進入test.log)
  • php -f test.php >test.log 2>&1 & ---我得到[1]+ Stopped(SIGTTOU) php -f test.php > test.log 2>&1 - 這個工作只是坐在那里什么都不做沒有記錄,但lsof顯示日志文件已打開

這與PHP有關嗎? 類似的shell腳本在后台執行沒有問題。

如果在構建php時啟用了readline,只需傳遞/ dev / null作為輸入。

在上面的示例中,它將是:

php -f test.php </dev/null >test.log 2>&1

現在已經解決了 - 感謝所有回復的人。 問題是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 - 一旦我解決了我的后台腳本問題就消失了:)

好吧,一個PHP腳本在完成執行時停止,即一個簡單的回聲“Hello World”在輸出字符串時就完成執行,我猜它與它有關;-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM