的時間間隔後停止程序在PHP文件,我有這樣的:如何在Ubuntu
system("../my/my.sh aa.pas", $retval);
system("../my/aa");
其中aa
是一個可執行文件。
如何編寫一個程序,如果經過n秒就會停止執行?
我想做一個判斷系統。 它將檢查以Pascal,C++等編寫的程序。如果程序的執行時間超過了指定的限制,我需要停止該程序。
的時間間隔後停止程序在PHP文件,我有這樣的:如何在Ubuntu
system("../my/my.sh aa.pas", $retval);
system("../my/aa");
其中aa
是一個可執行文件。
如何編寫一個程序,如果經過n秒就會停止執行?
我想做一個判斷系統。 它將檢查以Pascal,C++等編寫的程序。如果程序的執行時間超過了指定的限制,我需要停止該程序。
$!
包含上次執行的命令的PID(進程ID)。因此,可以試試這個:
kill $!
system('timeout n ../my/aa');
^
凡n
是在幾秒鐘內某個整數值。
如果該命令超時,則退出狀態124.否則,退出狀態爲COMMAND的 。如果沒有指定信號,則在超時後發送TERM 信號。 TERM信號殺死任何不會阻止或捕獲該信號的進程。對於其他進程,可能需要使用KILL(9)信號,因爲該信號不能被捕獲。
謝謝,但我怎麼知道我的程序是否完成或時間到了嗎? – 2012-03-16 23:10:54
運行'timeout --help'可在計算機上看到發生超時時返回的值,然後檢查返回值(通過將可選參數添加到'system()')。我已經發布了我的機器的退出狀態,或許它們與你的一樣。 – nickb 2012-03-16 23:15:41
非常感謝。它的工作 – 2012-03-16 23:24:11
你可以這樣做:
$PID = shell_exec("nohup ../my/aa > /dev/null & echo $!");
啓動子,在你等待主進程限制時間,然後
exec("kill -KILL $PID")
檢查here,搜索殺
但如何當運行時間超過1秒時,我可以做到嗎? – 2012-03-16 22:51:48