Czyste wyjście dla xargs


1

W ramach skryptu tunelowego chciałem usunąć / zabić istniejące tunele

Do tej pory udało mi się dostać do:

matt @ HY731AA: ~ $ ps aux | grep "ssh -N lin1tunnels" | grep -v grep | awk '{print 2 USD}' | xargs -0 kill -9 BŁĄD: ID procesu czyszczenia pamięci „5321 5322”.

Wygląda na to, że dane wyjściowe zawierają „chociaż usunięcie xargs nie pokazuje”, istnieje sposób na wyczyszczenie danych wyjściowych gotowych na xargs. A może ktoś zna lepszy sposób na osiągnięcie powyższego

Odpowiedzi:


4

@ Sugestia Johna dotycząca pkill jest czystszym sposobem na zrobienie tego (jeśli go masz), ale tylko dla przypomnienia: problem polega na tym, że używasz -0flagi xarg (która każe szukać wartości rozdzielanych zerami ), ale wysyłanie wartości rozdzielane znakiem nowej linii. Ponadto zamiast używać drugiego grepa do usunięcia pierwszego z wyników, wyszukaj wzór, który nie pasuje do siebie:

ps aux | grep "[s]sh -N lin1tunnels" | awk '{print $2}' | xargs kill -9

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.