【发布时间】:2023-03-27 11:20:01
【问题描述】:
Linux:如何检测消耗最大内存的进程并使用 std::thread 杀死它?我是 C++ 编码的新手,因此非常感谢使用 C++ 代码来实现该功能的解释。 分配的确切文本是编写一个 C++ 代码来监视设备的内存使用情况,并且它应该知道设备达到了目标最大内存使用情况。当线程检测到这种情况时,它应该能够识别正在占用更多内存的进程并执行以下操作,根据应用程序优先级列表检查进程。如果进程属于低优先级类别,请停止进程并重新启动。否则,通知用户由于识别的进程而发生内存溢出,在用户确认的基础上重新启动。重启应该是设备重启还是进程重启,这将根据导致这种情况的进程的性质来决定 · 详细信息应记录在日志文件中
【问题讨论】:
-
std::thread应该产生一个线程,而不是杀死一个进程。 -
显示您尝试过的内容,因此我们感谢作者是解决您问题的主要兴趣,然后我们将为您提供建议或可能的解决方案。如果您是初学者,我建议您寻找更简单的应用程序。
-
我的意思是内存监控的过程应该发生在后台,所以我必须使用std::thread。要实现的功能是检测一个消耗RAM到致命程度的进程并杀死它
-
虚拟内存大小还是驻留集大小?如果您可以包含作业的确切文本,那将更容易。你已经知道如何使用 std::thread 了吗?
-
不,我还没有使用 std::thread。
标签: c++ linux multithreading memory-management process