如何在Ubuntu上间隔后停止程序

时间:2012-03-16 22:40:45

标签: php ubuntu pascal

php 文件中,我有这个:

system("../my/my.sh aa.pas", $retval);
system("../my/aa");

其中aa是可执行文件。

如果n秒过去,如何编写一个会停止执行的程序?

我想制作一个评判系统。 它将检查用Pascal,C ++等编写的程序。如果程序的执行时间超过指定的限制,我需要停止程序。

3 个答案:

答案 0 :(得分:0)

$!包含上次执行的命令的pid(进程ID)。所以可以试试这个:

kill $!

答案 1 :(得分:0)

system('timeout n ../my/aa');
                ^

其中n是一个以秒为单位的整数值。

  

如果命令超时,则退出状态124.否则,退出   具有COMMAND状态。如果未指定信号,请发送TERM   超时时发出信号。 TERM信号会杀死任何没有的进程   阻止或捕获该信号。对于其他过程,可能是必要的   使用KILL(9)信号,因为此信号无法捕获。

答案 2 :(得分:0)

你可以这样做:

$PID = shell_exec("nohup  ../my/aa > /dev/null & echo $!");

启动子进程,在主进程中等待限制时间,然后

exec("kill -KILL $PID")

检查here,搜索kill