루트를 사용해도 프로세스를 종료할 수 없습니다. 진단하는 방법?

루트를 사용해도 프로세스를 종료할 수 없습니다. 진단하는 방법?

bashUbuntu 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

"unkillable" 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사용자의 프로세스를 직접 종료할 수 없습니다 p.

액세스 권한이 있는 경우 sudo루트 또는 일반 사용자로 kill 명령을 실행할 수 있습니다 p. 이전 사용자 세션일 수 있는 경우 편집자 등이 종료하기 전에 저장되지 않은 작업의 백업을 저장할 수 있으므로 를 kill -HUP사용하는 것이 를 사용하는 것보다 낫습니다 . 또한 대화형 셸 프로세스(예: 이전 세션) 는 kill일반 셸 프로세스의 영향을 받지 않지만 제대로 작동합니다.killkill -HUP

다음 사용자로 kill 명령을 실행하십시오 p.

user$ sudo -u p kill -HUP 10964 11126

또는 루트 권한을 사용하십시오.

user$ sudo kill -HUP 10964 11126

user로 실행되는 프로세스의 경우 puser로 실행되는 kill 명령은 p루트로 실행되는 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

무슨 일이 일어났는지 알려줘

관련 정보