2013-03-07 103 views
0

我有一個python腳本,我希望每n秒運行一次。我希望能夠用PHP頁面啓動腳本。我希望它在後臺運行,以便我可以訪問我的頁面,點擊'去',離開頁面,幾個小時後回來,並停止整個事情。PHP每隔n秒運行一次python腳本

我試圖建立一個網絡接口,每隔n秒從網絡攝像頭捕捉屏幕截圖,以便我可以在稍後將圖像序列編譯成時間推移視頻。

我試圖使用的命令是:

nohup watch -n20 python imgDownload.py & 

這通常發生在我直接輸入到命令行工作,但在PHP當我這樣做

$cmd = 'nohup watch -n20 python imgDownload.py &'; 
$output = shell_exec($cmd); 

​​

或甚至

$cmd = 'nohup watch -n20 python ' . dirname(__FILE__) . '/imgDownload.py &'; 

它不起作用。

我知道了shell_exec()的作品,因爲我可以成功運行以下命令:

echo shell_exec("echo 'hi, there'"); 

它把「嗨,有」網頁上,像它應該。

任何想法,爲什麼它不工作?有一個更好的方法嗎?

+0

什麼錯誤的,你得到什麼? – 2013-03-07 20:13:12

+0

沒有錯誤。當頁面加載時它掛起,或者當我做「exec()或死亡('死亡')」時,它選擇死亡。 – Justin 2013-03-07 20:15:46

+0

您是否驗證了命令shell_exec()已啓用? – ILikeTacos 2013-03-07 20:19:38

回答

0

使用exec和輸出重定向到/ dev/null的,這將導致PHP不是在命令等待完成:

$cmd = 'nohup watch -n20 python imgDownload.py &'; 
exec($cmd . " > /dev/null &");