如何访问当前不是 运行 的进程后面的 task_struct?

How to access the task_struct behind a process not currently running?

我正在研究一种管理休眠进程的替代方法,为了我的实验,我需要制作一个修改过的 Linux 内核。对于我正在做的事情,我需要访问描述流程的 task_struct,即使它是当前的 运行。我需要这样做,以便我可以为我建议的睡眠方法更新 task_struct 的字段。

TL;DR 如何访问 CPU 当前不在 运行 上的进程的 task_struct。我会知道它是 PID。

find_task_by_vpid() in sched.h(假设是最近的内核)。

正如@Tsyvarev 所提到的,在您可以调用它之前有(很多)同步问题需要解决,因此请了解它的调用者做什么,这样您就不会搬起石头砸自己的脚。