为什么我无法将 `strace` 附加到 kworker 进程?

为什么我无法将 `strace` 附加到 kworker 进程?

作为 root,我尝试附加strace到正在运行的kworker进程,但没有成功。

      root@rasal# whoami
            root
      root@rasal:/# cat  /proc/sys/kernel/yama/ptrace_scope
            0
      root@rasal:/# ps ax | grep kworker
            1030 ?        S<     0:00 [kworker/u17:0]
      root@rasal:/# strace -fp 1030
            strace: attach: ptrace(PTRACE_ATTACH, ...): Operation not permitted
            Could not attach to process.  If your uid matches the uid of the target
            process, check the setting of /proc/sys/kernel/yama/ptrace_scope, or try
            again as the root user.  For more details, see /etc/sysctl.d/10-ptrace.conf

etc/sysctl.d/10-ptrace.conf文件简单地指出:

PTRACE 范围“0”是更宽松的模式。

这正是我所拥有的,见上文。这有什么理由会失败吗?或者这是一个错误?

答案1

您显示的 kworker“进程”是一个内核线程,而不是一个普通进程。它没有用户空间部分,因此没有系统调用。即使它起作用了,也不可能显示出任何东西。

最重要的是,我猜想跟踪内核线程(在人们可以想象的任何虚构场景下)很可能会冻结系统。

相关内容