2013-12-10 26 views
0

我有一個可執行文件,我想使用超時運行它。我正在使用Linux服務器和PHP。以下是我正在使用的代碼爲什麼超時不工作linux服務器

exec("timeout 2s ./exe <input> output"); 

它只是產生沒有內容的輸出文件。但如果我刪除超時如下:

exec("./exe <input> output"); 

然後它顯示在我的輸出文件中的預期輸出。

爲什麼會發生這種情況。我是否以正確的方式使用超時? 如何解決它?

+0

您是否嘗試將超時時間增加到5秒或10秒? –

+0

是的,我只是試過...但仍然沒有 – user2958359

回答

0

試圖改變你的命令的方式如下:

exec("timeout 2s ./exe <input> output 2>&1"); 

這可能是因爲timeout不上PATH

+0

我怎麼得到命令呢? – user2958359

+0

您可以更改'php'運行(困難)的'PATH'或通過絕對路徑調用命令(更簡單)。 –

+0

我如何知道絕對路徑...請幫助,因爲我對這個區域很陌生 – user2958359

0

我認爲你的問題可能是你的系統上不存在timeout命令,或者PHP沒有找到它,因爲它不在PATH中。

相關問題