「killall killall」が機能しないのはなぜですか?[複製]


3

重複の可能性:
予期しないkillall動作

killall killall端末からコマンドを実行すると(KDE 4のKonsoleを使用した場合)、プロセスが見つからなかったと表示されます。 killall実行され、呼び出されたプロセスkillallを探し、自分自身を見つけて強制終了しますが、それはしません。どうして?


2
man killall | grep itself

私は、エクササイズの脳をからかう面を手に入れましたが、どうしてそんなことをしたいのでしょうか?:)
icyrock.com

楽しみのために:-) :-)
user3001

@ icyrock.com決してとは言わないでください。私はいくつかのkillallプロセスを一度立ち往生させて、それらを殺そうとしましたkillall。しかし、その後、もう一方も立ち往生しました:(
sudo

回答:


11

おそらく、自分自身を無視するように書かれているからでしょうか?

::のソースコードを見るkillall::

http://src.gnu-darwin.org/src/usr.bin/killall/killall.c.html

うん:

if (thispid == mypid)
    continue;

それで、彼らは「ナンセンス」を除いて、killallプロセスitelfをスキップする理由は何だと思いますか?
user3001

1
@ user3001はそれをスキップします。なぜなら、それが自分自身を殺すと、あなたが与えた仕事を終わらせることができないからです。
リッチホモルカ

3
確かに!killallは正規表現をサポートしています。正規表現の一致は過度に熱心で、killall自体と一致する一方で、目的のプロセス名のセットと一致する可能性があります。たとえばkillall --regex 'ki.*'、同様のもの。唯一ので、この正規表現のサポートがなければ、自己をチェックする機能は、あまり意味がありませんkillall一致させることができますkillall--regex指定されていない場合、コードはテストをスキップする必要があります。(ちなみに、のぽっかりないことがあり、私に発生した--globオプションは、あなたは、プロセス名に本格EREを必要としないことはほとんどだろう、私は殺したい場合。。gnome-すべてのものを、どのようにについてgnome-*
カズ

9

男殺し

killallプロセスは、それ自体を決して殺しません(しかし、他のkillallプロセスを殺すかもしれません)。


1
十分ですが、2> / dev / nullが可能です。また、終了状態は、動作していた場合とほぼ同じです。
ドンブランソン

1
確かに、簡単に見えるようにします。OSXのマニュアルページでは、この部分は省略されています。
ブライアンローチ

@BrianRoach -あなたの道はもっとスタイルを持っていた;)
Shinrai
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.