web-dev-qa-db-ja.com

linux / solarisは1つのコマンドで多くのプロセスを強制終了します

1つのコマンドですべての検索プロセスを強制終了することは可能ですか?

kill -9 25295kill -9 11994などのように各プロセスを強制終了したくありません。むしろ、すべての検索プロセスを強制終了する簡単な方法またはコマンドが必要です(私の目標はLinuxでこのアクションを実行することです)およびsolarisマシン)。

$ ps -ef | grep find 
root 25295 25290   0 08:59:59 pts/1 0:01 find /etc -type f -exec grep -l 100.106.23.152 {} ; -print
root 11994 26144   0 09:04:18 pts/1 0:00 find /etc -type f -exec grep -l 100.106.23.153 {} ; -print
root 25366 25356   0 08:59:59 pts/1 0:01 find /etc -type f -exec grep -l 100.106.23.154 {} ; -print
root 26703 26658   0 09:00:05 pts/1 0:01 find /etc -type f -exec grep -l 100.106.23.155 {} ; -print
1
yael

これはLinuxとSolarisの両方で機能し、必要なことを正確に実行します。

pgrep -f 'find /etc'     # verify the listing before proceeding
pkill -9 -f 'find /etc'

あなたの状況では、killallを避けてください。 Linuxで使用すると、遅かれ早かれsshセッションを間違え、Solarisで実行し、不必要なリスクを生み出します。

Pgrep/pkillの-fオプションは、コマンドライン全体に一致することを意味します。プログラムまたはスクリプトのパス(/var/tmp/test.sh)を一致させる必要がある場合、パス全体で実行した場合はこれが機能します。正確には、.をエスケープするだけでよいので、

pkill -9 -f '/var/tmp/test\.sh'

./test.shと同じプログラムを実行した場合は、そのように強制終了する必要があります。 ps-fオプションを参照してください。

5
kubanczyk

使用する pkill findこれはpgrepprocess grep)。 Linuxでは、killall findも機能します。

3
Sven

はい、killallコマンドを使用できます

killall find 
0