如何终止内核线程?我真的想这么做吗?

如何终止内核线程?我真的想这么做吗?

正如我所学到的这个问题,命令[bracketed]列出的进程ps aux是内核线程。那么有没有办法从命令行杀死它们?如果没有,我猜这样做的原因是为了避免用户面临更高的内核恐慌风险,对吧?

答案1

您无法终止内核线程或任何处于 D 状态的阻塞进程,因为只有当内核返回用户模式时才会传递信号。除了信号传递的技术限制之外,在内核代码中间终止线程会破坏系统,因为内核代码当时可能持有重要资源,例如自旋锁或互斥锁,而终止它会阻止释放这些资源。

如果你有一个进程长时间处于 D 状态,那么你有一个内核错误。请参阅https://wiki.ubuntu.com/KernelTeam/KernelTeamBugPolicies了解举报技巧。

答案2

内核线程是内核为管理系统而创建的必要线程。

并非所有都是必要的,但所有(大多数)都是有益的,并且几乎不需要额外的资源,没有理由在正常情况下考虑终止内核线程。

Linux 内核可以在必要时创建和销毁这些线程,您不必担心它们,而且在大多数情况下您也无法杀死它们。

相关内容