作为 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“进程”是一个内核线程,而不是一个普通进程。它没有用户空间部分,因此没有系统调用。即使它起作用了,也不可能显示出任何东西。
最重要的是,我猜想跟踪内核线程(在人们可以想象的任何虚构场景下)很可能会冻结系统。