ssh em uma máquina e procure por processo, mate usando xargs

ssh em uma máquina e procure por processo, mate usando xargs

Eu estou fazendo isso,

[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

Mas está funcionando se eu colocar desta forma

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

Por que ?

Responder1

Sua segunda versão do comando envia o comando inteiro (em " .... " ) para o servidor para ser executado lá, sua primeira versão envia apenas a primeira parte jpspara o servidor, e então executa o restante do comando usando a saída na máquina local.

informação relacionada