SSH in eine Maschine und suchen Sie nach Prozess, töten Sie mit xargs

376
Vinu Shankar

Ich mache das,

guastest@iridium06.psc ~> ssh <machine> jps | gawk '$2 == "<process>" ' | xargs kill kill: sending signal to 75797 failed: No such process guastest@iridium06.psc ~> echo $? 123 

Aber funktioniert es, wenn ich es so sage

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

Warum ist das so ?

0
Was genau beseitigen? Sie sollten Ihre Frage so bearbeiten, dass klar ist, was Sie zu beseitigen suchen. Ramhound vor 6 Jahren 0
Der Exit-Status ist 123 und der Prozess wird nicht beendet Vinu Shankar vor 6 Jahren 0
Prüfen Sie zunächst die Ausgabe: Entfernen Sie die Klausel `>, oder leiten Sie sie in eine Datei um. Bearbeiten Sie Ihre Frage und fügen Sie die Ergebnisse hinzu. AFH vor 6 Jahren 0
Sie müssen Ihre Frage * bearbeiten * und Ihre Frage klären. Die durch einen Kommentar vorgelegte Klarstellung kann entfernt werden, da sie zu gesprächig ist. Ramhound vor 6 Jahren 0
Siehe die Antwort von djsmiley2k .. eggo vor 6 Jahren 0

1 Antwort auf die Frage

2
djsmiley2k

Ihre zweite Version des Befehls sendet den gesamten Befehl (in "....") an den Server, um dort ausgeführt zu werden. Ihre erste Version sendet nur den ersten Teil jpsan den Server und führt dann den Rest des Befehls unter Verwendung der Ausgabe aus auf dem lokalen Rechner.