在php文件中,我有这样的:
system("../my/my.sh aa.pas", $retval);
system("../my/aa");
其中CCD_ 1是可执行文件。
如果n秒过去了,我该如何编写一个停止执行的程序?
我想制定一个评判体系。它将检查用Pascal、C++等编写的程序。如果程序的执行时间超过指定的限制,我需要停止该程序。
$!
包含最后执行的命令的pid(进程id)。所以可以试试这个:
kill $!
system('timeout n ../my/aa');
^
其中n
是以秒为单位的某个整数值。
如果命令超时,则以状态124退出。否则,退出状态为COMMAND。如果未指定信号,则发送TERM信号超时。TERM信号杀死任何没有阻断或捕捉该信号。对于其他过程,可能有必要使用KILL(9)信号,因为该信号不能被捕获。
您可以这样做:
$PID = shell_exec("nohup ../my/aa > /dev/null & echo $!");
要启动子流程,请在主流程中等待限制时间,然后
exec("kill -KILL $PID")
查看此处,搜索终止