一部のプロセスを除いて、特定のシェルのすべてのプロセスを終了する必要があります。
たとえば、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")}'
ps
2〜3つのプロセス(例えば、、sh
)が終了しないように除外する必要があります。
これを行う方法はありますか?
ベストアンサー1
もちろん、$ 1は引用符で囲まれているため、作成した行は機能しません。この試み:
ps| gawk '{ if ($4 != "COMMAND" && $4 != "sh" && $4 != "ps") system("kill -KILL "$1) }'
楽しく楽しんでください。注意して使用してください。私は通常gawkのシステムコマンドが好きではなく、「kill」コマンドも間違いなく好きではありません。