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