自動的にプロセスを終了

自動的にプロセスを終了

一部のプロセスを除いて、特定のシェルのすべてのプロセスを終了する必要があります。

たとえば、shこれは私のシェルとコマンドです。

これが私の現在のシェルにあるものです。

rcihp146 :/home/msingh2> ps
   PID TTY       TIME COMMAND
  8880 pts/258   0:00 ps
  5908 pts/258   0:00 sh

しかし、追加のプロセスがある場合は、上記の2つのプロセスを除いてすべてを終了したいと思います。

私は成功しなかったので、この目的のために1行試してみました。

rcihp146 :/home/msingh2> ps | awk '{system("kill -9 $1")}'
sh: kill: The number of parameters specified is not correct.
sh: kill: The number of parameters specified is not correct.
sh: kill: The number of parameters specified is not correct.
sh: kill: The number of parameters specified is not correct.

...しかし、次のように特定のPIDを提供すると動作します。

 rcihp146 :/home/msingh2> ps | awk '{system("kill -9 23456")}'

ps2〜3つのプロセス(例えば、、sh)が終了しないように除外する必要があります。

これを行う方法はありますか?

ベストアンサー1

もちろん、$ 1は引用符で囲まれているため、作成した行は機能しません。この試み:

ps| gawk '{ if ($4 != "COMMAND" && $4 != "sh" && $4 != "ps") system("kill -KILL "$1) }'

楽しく楽しんでください。注意して使用してください。私は通常gawkのシステムコマンドが好きではなく、「kill」コマンドも間違いなく好きではありません。

おすすめ記事