Почему это не убивает удаленный процесс?

Следующая команда работает в локальном терминале:

ps aux | grep "script.py" | awk {'print $2'} | xargs kill -2

Но эта команда не работает удаленно:

ssh -o ConnectTimeout=6 john@remote-pc ps aux | grep "script.py" | awk {'print $2'} | xargs kill -2

... хотя script.py на удаленном принадлежит Джону, пользователь, которого мы ssh как. Я могу успешно пинговать и другие команды успешно.

1 ответ

Решение

Вы должны избежать труб, чтобы заставить их быть переданы ssh команда, а не выполняется вашей локальной оболочкой, иначе все после ps aux выполняется на вашей локальной машине.

ssh -o ConnectTimeout=6 john@remote-pc ps aux \| grep "script.py" \| awk {\'print $2\'} \| xargs kill -2
Другие вопросы по тегам