即使使用 root 也无法终止进程。如何诊断?

即使使用 root 也无法终止进程。如何诊断?

bash我的 Ubuntu Linux (12.04) 上运行着很多进程。即使我关闭终端,它们仍然显示在System Monitor.

我尝试按如下方式杀死它们,但它们仍然保持原样。如何诊断问题,为什么不能终止?

user$ ps aux | grep bash
user    2807  0.0  0.0   9484    56 pts/20   Ss+  Mar18   0:00 /bin/bash
user    4431  0.0  0.1   9228  5616 pts/7    Ss   10:39   0:00 bash
user    4655  0.0  0.0   4372   844 pts/7    R+   10:45   0:00 grep --color=auto --exclude-dir=.svn bash
user    5664  0.0  0.0  12764    12 pts/6    Ss   Feb05   0:01 /bin/bash
user    5812 99.6  0.1  11276  7088 ?        Rs   Sep22 3923:00 bash
user    6174  0.0  0.0  13016    28 pts/19   Ss+  Feb13   0:04 /bin/bash
p        10964  0.0  0.0  11700    28 pts/2    Ss+  Feb11   0:01 bash 
p        11126  0.0  0.0   7952   560 pts/3    Ss+  Feb11   0:00 bash 
user   18195  0.0  0.0  17320   344 pts/9    Ss+  Apr22   0:29 /bin/bash
user   21721  0.0  0.0  15924     4 pts/10   Ss+  Feb01   0:10 /bin/bash
user   22915  4.7  0.3  19400 13056 pts/22   Rs+  Jul29 3950:07 /bin/bash
user   24030  0.0  0.0  13740     4 pts/23   Ss+  Mar24   0:15 /bin/bash
user   29787  0.0  0.1   9220  5572 pts/11   Ss+  Sep23   0:00 /bin/bash
user$ 
user$ pkill -f bash
pkill: 10964 - Operation not permitted
pkill: 11126 - Operation not permitted
user$ sudo pkill -f bash
user$ 
user$ ps aux | grep bash
user    2807  0.0  0.0   9484    56 pts/20   Ss+  Mar18   0:00 /bin/bash
user    4431  0.0  0.1   9228  5616 pts/7    Ss   10:39   0:00 bash
user    4660  0.0  0.0   4372   844 pts/7    R+   10:45   0:00 grep --color=auto --exclude-dir=.svn bash
user    5664  0.0  0.0  12764    12 pts/6    Ss   Feb05   0:01 /bin/bash
user    5812 99.6  0.1  11276  7088 ?        Rs   Sep22 3923:21 bash
user    6174  0.0  0.0  13016    28 pts/19   Ss+  Feb13   0:04 /bin/bash
p        10964  0.0  0.0  11700    28 pts/2    Ss+  Feb11   0:01 bash 
p        11126  0.0  0.0   7952   560 pts/3    Ss+  Feb11   0:00 bash 
user   18195  0.0  0.0  17320   344 pts/9    Ss+  Apr22   0:29 /bin/bash
user   21721  0.0  0.0  15924     4 pts/10   Ss+  Feb01   0:10 /bin/bash
user   22915  4.7  0.3  19400 13056 pts/22   Rs+  Jul29 3950:29 /bin/bash
user   24030  0.0  0.0  13740     4 pts/23   Ss+  Mar24   0:15 /bin/bash
user   29787  0.0  0.1   9220  5572 pts/11   Ss+  Sep23   0:00 /bin/bash

答案1

请注意,“不可杀死”的 bash 进程正在以用户身份运行p

user    6174  0.0  0.0  13016    28 pts/19   Ss+  Feb13   0:04 /bin/bash
p        10964  0.0  0.0  11700    28 pts/2    Ss+  Feb11   0:01 bash 
p        11126  0.0  0.0   7952   560 pts/3    Ss+  Feb11   0:00 bash 
user   18195  0.0  0.0  17320   344 pts/9    Ss+  Apr22   0:29 /bin/bash

您正在以 user 身份运行user,因此您不能直接终止 user 的任何进程p

如果您有sudo访问权限,则可以以 root 或普通用户身份发出终止命令p。对于可能是旧用户会话的事情,使用kill -HUP比仅仅使用更好kill,因为它允许编辑器等在退出之前保存任何未保存工作的备份。此外,交互式 shell 进程(即旧会话)可以不受常规 Shell 进程的影响kill,但kill -HUP对它们来说工作得很好。

以用户身份发出kill命令p

user$ sudo -u p kill -HUP 10964 11126

或使用根电源:

user$ sudo kill -HUP 10964 11126

对于以 user 身份运行的进程p,以 user 身份发出的kill命令p与 root 发出的kill命令一样强大:即使是普通用户也对他们自己拥有的任何进程的生死拥有完全的权力。

答案2

您不认为您无法杀死系统中的 bash 吗?您在 bash 中运行应用程序/程序,并且可以终止在 bash 中运行的程序。现在您可以找到在 bash 中运行的所有进程 ID 程序。正如您在终端上所示:

> user    4660  0.0  0.0   4372   844 pts/7    R+   10:45   0:00 grep
> --color=auto --exclude-dir=.svn bash

尝试终止该进程:

sudo kill 4660

或者

sudo kill  -9 4660

让我知道发生了什么

相关内容