我试图终止这个似乎陷入循环的进程:
> ps auxww | grep -E '^USER|bash'
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
ubuntu 61505 99.7 0.0 8596 304 ? R Sep27 812:45 bash redacted
尽管返回退出代码 0,但没有任何效果:
kill 61505
和sudo kill 61505
kill -KILL 61505
和sudo kill -KILL 61505
kill -9 61505
和sudo kill -9 61505
kill -TERM 61505
和sudo kill -TERM 61505
cpulimit --pid=61505 -l 1 -k
和sudo cpulimit --pid=61505 -l 1 -k
没有效果的意思是:
STAT
说R
TIME
继续增加sudo cat /proc/61505/stack
继续改变
我查了一下STAT
值的R
含义,它是:
R 正在运行或可运行(在运行队列中)
调试评论的输出:
> sudo cat /proc/61505/stack
[<0>] __switch_to+0xb8/0xe4
[<0>] 0x0
> sudo cat /proc/61505/stack
[<0>] __switch_to+0xb8/0xe4
[<0>] function_trace+0x98/0x98
[<0>] do_translation_fault+0x64/0x9c
[<0>] do_mem_abort+0x4c/0xbc
[<0>] el1_abort+0x74/0xf4
[<0>] el1_sync_handler+0xac/0xcc
[<0>] el1_sync+0x7c/0x100
[<0>] schedule_tail+0x130/0x200
[<0>] ret_from_fork+0x4/0x3c
> sudo cat /proc/61505/stack
[<0>] __switch_to+0xb8/0xe4
[<0>] function_trace+0x98/0x98
[<0>] enter_from_kernel_mode+0x28/0x60
> sudo cat /proc/61505/stack
[<0>] __switch_to+0xb8/0xe4
[<0>] fault_info+0x60/0x600
> sudo cat /proc/61505/stack
[<0>] __switch_to+0xb8/0xe4
[<0>] fault_info+0x60/0x600
# a while later
> sudo cat /proc/61505/stack
[<0>] __switch_to+0xb8/0xe4
[<0>] el1_irq+0xd8/0x180
[<0>] handle_mm_fault+0xc8/0x294
[<0>] do_page_fault+0x14c/0x4e0
[<0>] do_translation_fault+0x64/0x9c
[<0>] do_mem_abort+0x4c/0xbc
[<0>] el1_abort+0x74/0xf4
[<0>] el1_sync_handler+0xac/0xcc
[<0>] el1_sync+0x7c/0x100
[<0>] schedule_tail+0x130/0x200
[<0>] ret_from_fork+0x4/0x3c
> sudo cat /proc/61505/stack
[<0>] __switch_to+0xb8/0xe4
[<0>] exit_to_kernel_mode+0x28/0x80
> sudo cat /proc/61505/stack
[<0>] __switch_to+0xb8/0xe4
[<0>] trace_hardirqs_off+0xd0/0x234
[<0>] el1_abort+0x84/0xf4
[<0>] el1_sync_handler+0xac/0xcc
[<0>] el1_sync+0x7c/0x100
[<0>] schedule_tail+0x130/0x200
[<0>] ret_from_fork+0x4/0x3c
> sudo cat /proc/61505/wchan
0
> sudo cat /proc/61505/wchan
0
> sudo cat /proc/61505/wchan
0
答案1
尝试以下基于帖子答案的代码
无法杀死/无法停止的普通用户进程,如何强制控制它?
sudo cgcreate -g cpu:/cpulimited
sudo cgclassify -g cpu:cpulimited 61505
cd /sys/fs/cgroup/cpu/cpulimited
echo 1000000 | sudo tee cpu.cfs_period_us
echo 1000 |sudo tee cpu.cfs_quota_us
如果该进程没有使用任何 CPU,这可能不起作用。
尝试pgrep -P 61505
查找是否bash
由于某些子进程而无法终止。
答案2
这个问题的答案一直就在你的面前。
重新启动计算机。
重新启动计算机将终止不会消失的进程,这是最好的解决方案,因为尝试“疏通”该进程可能会导致内核崩溃。