マシンにsshで接続してプロセスを検索し、xargsを使用してkillします。

マシンにsshで接続してプロセスを検索し、xargsを使用してkillします。

私はこれをやっています、

[email protected] ~> ssh <machine> jps | gawk '$2 == "<process>" {print $1}' | xargs kill
kill: sending signal to 75797 failed: No such process
[email protected] ~> echo $?
123

しかし、こう言うとうまくいっている

ssh <machine> "jps | gawk '\$2 == \"<process>\" {print \$1}' | xargs kill "

どうしてこんなことに ?

答え1

2 番目のバージョンのコマンドは、コマンド全体 (「 .... 」内) をサーバーに送信してそこで実行します。1 番目のバージョンは、最初の部分のみをjpsサーバーに送信し、ローカル マシン上の出力を使用してコマンドの残りを実行します。

関連情報