web-dev-qa-db-ja.com

パイプ経由でkillする引数を与える方法

特定のプロセスを検索し、そのプロセスを強制終了する必要があります。私はこのようなコマンドを書きました:

ps -e | grep dmn | awk '{print $1}' | kill

プロセス名はdmnです。しかし、それは機能していません。名前とkillでプロセスを見つけるにはどうすればよいですか。

60
user567879
kill $(ps -e | grep dmn | awk '{print $1}')
122
Daniel Persson

削除するプロセスが複数ある場合は、これを使用できます。

ps -efw | grep dmn | grep -v grep | awk '{print $2}' | xargs kill

注:grepプロセス自体を出力から削除する必要があるため、grep -v grep 使用されている。

38
jcollado

使用できます

pkill dmn 

システムに pkillコマンド がある場合。

15
unutbu

他の機能を追加するだけですが、awkの正規表現機能の使用が好きです:

kill $(ps | awk '/dmn/{print $1}')
4
pedmiston

システムにpidofコマンドがある場合(私が間違っていない限り、デフォルトでZSHなどのシェルがこれに付属していることを知っています)、次のようなことができます。

kill -9 $(pidof dmn)
3
Nathan F.

killall を使用することもできます。

killall dmn
2
SKi
for procid in $(ps -aux | grep "some search" | awk '{print $2}'); do kill -9 $procid; done

こんにちは友人.. forループを使用してそれを行うことができます。

ここで「一部の検索」は検索したいプロセス名、例えば「Java」なので、Javaプロセスのカウントは200+なので、1つずつキルするのはあまりにも典型的です。

したがって、上記のコマンドを使用できます。

ありがとう。

0
Nishant

pipeコマンドがあり、イメージ名がわかっている場合、このためにpidofは必要ないかもしれません。

_kill $(pidof synergyc)
_

$()パイプが行うように、killが使用できる変数にその出力を変換するため、これを理解しています。他のオプションよりも短く簡単に理解できますが、柔軟性が低く、より直接的です。

0
NotVeryPythonic