grepにヒットしたすべてのプロセスを終了するためのエイリアス[重複]

grepにヒットしたすべてのプロセスを終了するためのエイリアス[重複]

grep一致に一致するすべてのプロセスを終了するためにスーパーキルエイリアスを作成しようとしています。私がしたい:

superkill ruby

「ruby」に一致するすべてのプロセスを終了させます。

私は.bashrcにこれを追加しました。

alias superkill="ps ax | grep $1 | cut -f1 -d' ' | xargs kill"

ただし、実行すると、次のような結果が表示されます。

superkill something
usage: grep [-abcDEFGHhIiJLlmnOoqRSsUVvwxZ] [-A num] [-B num] [-C[num]]
    [-e pattern] [-f file] [--binary-files=value] [--color=when]
...

誰もが正しい方向に私を指すことができますか?

ありがとう、ケビン


これはコピーとは異なります。具体的な質問をさせていただきます。重複は一般的で高レベルの問題です。コピーを読んでも解決策は思い出されません。

pkill -f動作しません。そうすれば

ps -A|grep ruby

それから

pkill -f ruby

それから

ps -A|grep ruby

Rubyプロセスがまだ存在することがわかります。しかし、もしそうするなら

kill -9 xxx

xxxがPIDの場合は機能します。私が探しているのは、grepエントリと一致するエイリアスkill -9です。

アップデート - これはSOに対する私の欲求不満を思い出させます。誰もがすぐに反対票を投げたり報告したりします(報告する価値がほとんどないと思います)。提案された答えのどれも機能しない別の例は次のとおりです。

kevin@kpi-2:~/Documents/code/kpi-veh$ sudo killall -r ruby
kevin@kpi-2:~/Documents/code/kpi-veh$ ps -A|grep ruby
27175 pts/9    00:22:03 ruby
kevin@kpi-2:~/Documents/code/kpi-veh$ sudo killall -r ruby
kevin@kpi-2:~/Documents/code/kpi-veh$ ps -A|grep ruby
27175 pts/9    00:22:06 ruby
kevin@kpi-2:~/Documents/code/kpi-veh$ sudo killall -r ruby
kevin@kpi-2:~/Documents/code/kpi-veh$ ps -A|grep ruby
27175 pts/9    00:22:08 ruby
kevin@kpi-2:~/Documents/code/kpi-veh$ kill -9 27175
kevin@kpi-2:~/Documents/code/kpi-veh$

私が探しているのは(これが詐欺だとロビーモニターと論争をしていることをまだ信じられない)エイリアスキル方法です。この場合(Rubyで頻繁に発生する)、IDでプロセスを終了する必要があります。私が知っている限り、すべてのバリエーションでkillallは機能しません。

ベストアンサー1

探しているアイテムはすでに次の名前で存在しますkillall -r

killall指定されたコマンドを実行するすべてのプロセスにシグナルを送信します。信号名が指定されていない場合にSIGTERM送信されます。 [...]

-r、--正規表現

プロセス名パターンを拡張正規表現として解釈します。

killall(1)マニュアルページ)

おすすめ記事