Como posso matar um processo remotamente?

0

Eu uso este comando para matar remotamente um processo, mas não funciona.

ssh -t root@g-9 -x "sshpass -p 'ubuntu' ssh -t [email protected] -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -x 'kill -9 'ps aux | grep cassandra | awk '{print $2}'''"
Warning: Permanently added '10.147.243.178' (ECDSA) to the list of known hosts.
bash: line 0: kill: (12720) - No such process
Connection to 10.147.243.178 closed.

Alguma ideia de onde poderia haver um erro?

    
por researcher 22.06.2015 / 16:16

1 resposta

0

tente substituir sua string de comando por:

kill -9 'ps aux | grep cassandra | grep -v "grep " | awk '{print $2}''

Isso evitará que o grep apareça nos resultados que você está tentando analisar.

O que está realmente acontecendo é que sua análise está captando seu processo de grep e tentando matá-lo, mas ele já foi concluído. Quando você grep uma string que não existe na saída de ps , você obterá uma resposta de volta, mas será o PID do processo grep , que não serve para você.

IE (eu não tenho um processo chamado "thisIsNotAProcess"):

Minty17 ~ $ ps -aux | grep "thisIsNotAProcess"
username    9364  0.0  0.0  11740   936 pts/2    S+   04:38   0:00 grep --colour=auto thisIsNotAProcess

e se você conectá-lo à sua seqüência de comando:

Minty17 ~ $ kill -9 'ps aux | grep thisIsNotAProcess | awk '{print $2}''
bash: kill: (9374) - No such process

Confira aqui mais técnicas para evitar essa armadilha: Excluindo o grep da lista de processos

    
por 22.06.2015 / 16:42

Tags