-D引数(ローカルプロキシの設定)で実行されるssh
のインスタンスを強制終了するスクリプトが必要です。
手動で、ps -A | grep -i ssh
、-Dでインスタンスを検索し、kill -9 {id}
それぞれ。
しかし、それはbashスクリプト形式ではどのように見えるのでしょうか。
(私はMac OS Xを使用していますが、port
を介して必要なコマンドをインストールします)
pgrep -f "ssh.*-D"
を実行して、正しいプロセスIDが返されるかどうかを確認します。存在する場合は、pgrep
をpkill
に変更し、同じオプションとパターンを維持します。
また、プログラムはSIGKILLをトラップして終了前にクリーンアップすることができないため、絶対に必要な場合以外はkill -9
別名SIGKILLを使用しないでください。私は最初にkill -9
-1
と-2
を試してから-3
を使用します。
また、
kill `pgrep -f "ssh.*-D"`
Procファイルシステムを利用して情報を収集できます。例えば:
for proc in $(grep -irl "ssh.*-D" /proc/*/cmdline | grep -v "self"); do if [ -f $proc ]; then cat $proc && echo ""; fi; done
それは完璧ではありません、より排他的な正規表現が必要になります(特にプロセスを強制終了する場合)echo $proc | awk -F'/' '{ print $3 }'
は、プロセスのPIDを表示します。