我有一個可執行文件,我想使用超時運行它。我正在使用Linux服務器和PHP。以下是我正在使用的代碼爲什麼超時不工作linux服務器
exec("timeout 2s ./exe <input> output");
它只是產生沒有內容的輸出文件。但如果我刪除超時如下:
exec("./exe <input> output");
然後它顯示在我的輸出文件中的預期輸出。
爲什麼會發生這種情況。我是否以正確的方式使用超時? 如何解決它?
我有一個可執行文件,我想使用超時運行它。我正在使用Linux服務器和PHP。以下是我正在使用的代碼爲什麼超時不工作linux服務器
exec("timeout 2s ./exe <input> output");
它只是產生沒有內容的輸出文件。但如果我刪除超時如下:
exec("./exe <input> output");
然後它顯示在我的輸出文件中的預期輸出。
爲什麼會發生這種情況。我是否以正確的方式使用超時? 如何解決它?
試圖改變你的命令的方式如下:
exec("timeout 2s ./exe <input> output 2>&1");
這可能是因爲timeout
不上PATH
。
我怎麼得到命令呢? – user2958359
您可以更改'php'運行(困難)的'PATH'或通過絕對路徑調用命令(更簡單)。 –
我如何知道絕對路徑...請幫助,因爲我對這個區域很陌生 – user2958359
我認爲你的問題可能是你的系統上不存在timeout
命令,或者PHP沒有找到它,因爲它不在PATH中。
您是否嘗試將超時時間增加到5秒或10秒? –
是的,我只是試過...但仍然沒有 – user2958359