Limpe a saída para xargs

1

Como parte do script de túnel, quero remover / eliminar quaisquer túneis existentes

Até agora consegui chegar a:

matt@HY731AA:~$ ps aux | grep "ssh -N lin1tunnels" | grep -v grep | awk '{print $2}' | xargs -0 kill -9 ERROR: garbage process ID "5321 5322 ".

Parece que a saída contém "embora a remoção dos xargs não apareça", existe uma maneira de limpar a saída pronta para xargs. Ou talvez alguém saiba uma maneira melhor de realizar o que foi dito acima

    
por Mâtt Frëëman 29.06.2011 / 06:43

2 respostas

4

@ A sugestão de John de pkill é a maneira mais limpa de fazer isso (se você tiver), mas apenas para o registro: o problema é que você está usando -0 flag do xarg (que diz para procurar null- valores delimitados), mas enviando valores delimitados por nova linha. Além disso, em vez de usar um segundo grep para remover o primeiro dos seus resultados, pesquise um padrão que não seja compatível com ele:

ps aux | grep "[s]sh -N lin1tunnels" | awk '{print $2}' | xargs kill -9
    
por 29.06.2011 / 07:51
4

Editar :

Use pkill :

 pkill -9 -f "ssh -N lin1tunnels"

Evite enviar sinal SIGKILL para o processo ou grupo de processos especificado. Leia o Uso inútil de mortes -9

    
por 29.06.2011 / 06:57

Tags