2012-09-01 20 views
4

我正在使用phpseclib ssh到我的服務器並運行一個python腳本。 python腳本是一個無限循環,所以它會一直運行,直到你停止它。當我用phpseclib通過ssh執行python script.py時,它可以工作,但是頁面只是永遠加載。它是這樣做的,因爲phpseclib不認爲它是「完成」的,運行無限循環腳本的代碼行,所以它掛在那條線上。我嘗試過使用exit並在該行之後死亡,但當然,它沒有工作,因爲它掛在行前,執行命令的行。有沒有人有任何想法如何我可以解決這個問題,而無需修改python文件?謝謝。PHP「取消」代碼行

+0

你想做什麼就做什麼?啓動Python腳本並讓它在沒有PHP腳本的情況下繼續運行? – icktoofay

+0

@icktoofay是的,然後我有另一個按鈕來停止它運行「kilall python」停止按鈕的作品,但我只想消除總是「加載」的頁面,以便用戶可以在腳本運行時做其他事情。 –

回答

4

假設命令將由shell中運行,你可以把它執行此啓動它:

nohup python myscript.py > /dev/null 2>&1 & 
+0

通過ssh執行該操作?該腳本使用參數也像p.py 1111111111我會如何把它們放在? –

+1

@CJSculti:將它們放在'myscript.py'之後和'>'之前。 – icktoofay

+0

沒關係,它的工作:) –

0

如果你把一個&任何shell命令的最後它會在後臺運行,立即返回,這就是你真正需要的。

+0

不會'SIGHUP'然後呢? – icktoofay

+0

取決於,並非所有程序都遵守該信號 – RobertMaysJr

+0

如果取決於,那麼您應該在您的答案中說明這一點。 – icktoofay

0

別的東西,你可能也做:

$ssh->setTimeout(1);