在 php 文件中,我有这个:
system("../my/my.sh aa.pas", $retval);
system("../my/aa");
其中aa
是可执行文件。
如果n秒过去,如何编写一个会停止执行的程序?
我想制作一个评判系统。 它将检查用Pascal,C ++等编写的程序。如果程序的执行时间超过指定的限制,我需要停止程序。
答案 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