【发布时间】:2012-02-02 18:19:58
【问题描述】:
是否可以杀死系统创建的进程?据我所知,System 使用 fork() 函数来创建一个新进程。我想跟踪被调用进程的运行时间(在调用系统之前分叉它)并在它超过运行时间限制时终止它。如果我杀死由我的主进程创建的孩子,由 system() 创建的孩子也会被杀死吗?
这不是实际的代码,但可以说明我在说什么。
int pid = fork();
if(pid == 0)
{
system("./veryLongProgram");
}
else
{
// calculate time elapsed and kill on long execution time
}
如果我可以使用 CPU 时间限制但我不希望我的子进程休眠,我也更愿意。如果是这样 - 它可能会保持这种状态很长时间。是否可以中断任何睡眠、暂停或程序有意调用的任何内容?那将是理想的。或者我可以检查我的进程是否正在休眠(在这种情况下,我还必须确保它是故意这样做的,并且没有因为打印或其他原因而暂停)?
【问题讨论】: