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


How to stop a program after an interval on Ubuntu

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")

查看此处,搜索终止