C++ 系统创建的终止过程&&限制其执行时间
C++ Killing Process Created by System && Limiting It's Execution Time
是否可以终止系统创建的进程?据我所知,System使用fork()函数来创建一个新的进程。我想跟踪被调用进程的运行时间(在调用系统之前分叉),如果超过运行时间限制,就终止它。如果我杀死了主进程创建的子进程,那么系统()创建的子程序也会被杀死吗?
这不是实际的代码,但可能会给出我所说的内容。
int pid = fork();
if(pid == 0)
{
system("./veryLongProgram");
}
else
{
// calculate time elapsed and kill on long execution time
}
我也希望我可以使用CPU时间限制,但我不想让我的孩子进程睡觉。如果真的发生了,它可能会在很长一段时间内保持这种状态。是否可以中断任何睡眠、暂停或程序故意调用的任何程序?那将是理想的。或者,我可以检查我的进程是否处于休眠状态(在这种情况下,我还必须确保它是故意的,并且没有因为打印或其他原因而暂停)?
- 使用
exec
而不是系统 - 安排家长接收
SIGARLM
信号。收到后,使用kill
系统调用杀死孩子。使用alarm
功能设置报警 - 让父级使用
wait
系统调用等待,直到子级自然死亡或因接收系统调用而死亡
你可以让它不那么刺耳,但首先发送TERM
信号,并在发送KILL
信号之前给孩子一个整理的机会。
相关文章:
- 简单C++"Hello World"程序的执行时间长
- 我使用 OpenMP 的线程越多,执行时间就越长,这是怎么回事?
- 为什么切换 for 循环的顺序会显著改变执行时间?
- cmd.exe与Powershell中C++程序的不同执行时间
- pthread执行时间比顺序执行时间差
- OpenCV 函数 cv::remap() 的执行时间更长,当程序在两者之间进入睡眠状态时
- 为什么 std::chrono 在测量循环和编译器优化的并行 OpenMP 的执行时间时不起作用?
- 我需要帮助来缩短检索 SSL 证书的执行时间
- 如何测量cudaMalloc执行时间
- c++中的执行时间和检查流状态
- 为什么for循环中的异步不能提高执行时间
- 为什么 C++ openMP 程序执行时间更长
- 测量任何 Windows 可执行文件的内存使用情况和执行时间
- 需要减少我的C++代码的执行时间
- 如何在 ubuntu 上的 php 脚本中获取程序(c,c++,java,python,php)的执行时间和内存使用量?
- 在Qt中设置pixmap时的执行时间很奇怪
- 异步控制线程执行时间
- 如何对 g++ 设置执行时间限制?
- 测量 std::系统的实际执行时间(以 C++ 为单位)
- C++ 系统创建的终止过程&&限制其执行时间