2012-02-01 91 views
3

我試圖在後臺運行一個php腳本。但它沒有工作......我只能從ssh終端直接運行。使用相同的cli腳本。用nohup在PHP上運行php腳本CLI

在終端,首先我訪問路徑:cd labs.lung.com.br/ztbot/bin/v2/php 在那之後,我跑我的腳本在後臺:nohup php get_tweets.php > /dev/null &

和它的作品!但是,當我嘗試用我的PHP腳本做同樣的事情:exec("nohup php get_tweets.php > /dev/null &");不起作用。這兩個文件都在同一個目錄中。

我列出文件夾中:exec("ls");他們都在同一水平......

直到PID其返回,當我運行:echo(shell_exec("nohup php get_tweets.php > /dev/null & echo $!"));

但由於某些原因腳本犯規運行。

+1

您是否嘗試過從shell執行中捕獲/記錄標準輸出/標準錯誤輸出? – Fosco 2012-02-01 18:07:21

+0

嗨!對不起,我可憐的知識,我怎麼做? – 2012-02-01 19:22:38

+0

我解決了! Fosco告訴我要得到錯誤輸出並獲得它!愚蠢的bug ..我試圖從其他目錄訪問一個文件。對不起大家!謝謝你的幫助! – 2012-02-01 19:45:46

回答

3

嘗試使用絕對路徑到php。

echo(shell_exec("nohup /usr/bin/php get_tweets.php > /dev/null & echo $!")); 
+0

只返回PID(http://labs.lung.com.br/ztbot/bin/v2/php/sistema.php),但該進程不運行。 – 2012-02-01 19:23:45

+1

你可以發佈以下代碼的輸出:'$ cmd ='set'; echo「

".shell_exec($cmd)."
」;' – seanbreeden 2012-02-01 19:47:25

+0

酷!恭喜你弄明白了! :) – seanbreeden 2012-02-01 19:51:02