私のスクリプトが引き続き新しいSSHプロセスを生成する問題があります。こんなことがあってはいけないということは分かりますが、時々古いものを掃除するのが好きです。
私がするなら:
ps -ef | grep "ssh" | awk '{print $2}'
実行中のSSHプロセスのすべてのPIDのリストを取得します。
最後に生成されたプロセス(PID番号が最も高いプロセス)を除くすべてのプロセスを終了したいと思います。
どうすればいいですか?
答え1
while [ $(pgrep -c ssh) -gt 1 ]
do
pkill --oldest -f ssh
done
複数のプロセスがあるたびに、ssh
最も古い(「最も最近開始された」)プロセスを終了します。 PID空間が囲まれている場合、または任意のPIDを使用している場合は、最新の開始が「最低PID」よりも優れた指標である可能性があります。