根据top
,名为 processpccardd
的 CPU 负载接近 100%:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
530 root 20 0 0 0 0 R 96.6 0.0 62:01.52 pccardd
根据ps
,进程运行状态:
root@T60:~# ps -o pid,ppid,command,state,uid,pcpu -p 530
PID PPID COMMAND S UID %CPU
530 2 [pccardd] R 0 0.2
root@T60:~#
如果我尝试杀死pccardd
withSIGTERM
或SIGKILL
信号,那么什么也不会发生。我知道这kill -9
可能不会立即起作用,但我已经等了一个多小时了。进程是否有可能pccardd
执行一些系统调用,从而导致SIGKILL
信号被阻塞?我试图用 来确保这一点strace
,但我不能:
root@T60:~# strace -p 530
attach: ptrace(PTRACE_ATTACH, ...): Operation not permitted
root@T60:~#
有没有办法终止这个pccardd
进程或者我被迫重新启动机器?
答案1
进程收到 SIGKILL 并仍然保留的唯一方法是:
- 该进程处于不可中断睡眠状态(表示为
D
)。 - 该进程是僵尸进程(表示为
Z
)。 - 这是一个内核进程。
[]
输出中进程名称周围的方括号 ( )ps
表示 #3,它是一个内核进程。
所以你杀不了它。你也不能使用strace
内核。
您可能拥有的唯一可能的解决方案是删除与此进程关联的模块。但是我不知道那个模块是什么。我还会检查dmesg
相关消息,并在网上搜索错误。