我创建了一个 Linux 内核模块,并尝试找到一种方法重新设置给定进程的父级或者更改给定进程 PID。有什么办法可以做到这一点吗?
我找到了以下链接,但无法使其工作。
https://www.smartspate.com/can-change-pid-process-linux-using-kernel-module/
答案1
标准 UNIX 只支持孤立进程,不支持重新父进程。孤立进程的结果是该进程的父进程的 pid 变为 1。
标准 UNIX 也不支持更改进程的 PID,并且可能会产生严重的安全隐患,因此不太可能支持它。
但是,您可以分叉一个进程,然后让父分叉退出。结果将是一个具有新 pid 且 ppid=1 的新进程
当然,总是可以修改内核源代码并安装新内核,但如果您不是内核代码专家,则期望它能够工作是遥不可及的。