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
「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
ユーザーのプロセスを直接終了することはできませんp
。
アクセス権がある場合は、sudo
rootまたは一般ユーザーとしてkillコマンドを実行できますp
。以前のユーザーセッションである可能性がある場合は、編集者などが終了する前に保存されていないジョブのバックアップを保存できるため、使用する方が使用するkill -HUP
よりも優れています。さらに、対話型シェルプロセス(以前のセッションなど)は通常のkill
シェルプロセスの影響を受けませんが、正常に機能します。kill
kill -HUP
次のユーザーとしてkillコマンドを実行しますp
。
user$ sudo -u p kill -HUP 10964 11126
または root 権限を使用します。
user$ sudo kill -HUP 10964 11126
user として実行されるプロセスの場合、p
user として実行される kill コマンドは、root として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
何が起こったのか教えてください