Уничтожьте процесс по SSH путем нахождения идентификатора Процесса

Я хочу записать сценарий который, позвольте нам меня, уничтожают процесс путем питания команды к сценарию.

У меня есть большая часть из него работа, но моя проблема в настоящее время, я должен к ssh в дважды уничтожить его 1) Для получения идентификатора 2 процесса) уничтожить процесс - я предпочел бы, делают это сразу, и я попытался передать по каналу, но я, может казаться, не заставляю это работать.

Вот моя текущая рабочая версия:

ProcessNumber=`ssh user1@server1 -p22222 ps -ef | awk '/[s]sh -f -N -T -R32400:localhost:32400 remote@remote/{print $2}'`
ssh user1@server1 -p22222 "kill $ProcessNumber"

И вот часть сценария, я не могу получить работу.

ssh user1@server1 -p22222 kill `ps -ef | awk "/[s]sh -f -N -T -R32400:localhost:32400 remote@remote/{print $2}"`

Какие-либо предложения для получения второго, работающего сразу?

3
задан 16 January 2017 в 19:13

2 ответа

Парсинг вывода ps -ef немного хитер. Я рекомендовал бы, чтобы Вы использовали pgrep в качестве

pgrep -f `ssh -f -N -T -R32400:localhost:32400 remote@remote`

Или просто уменьшили все с pkill:

ssh user1@server1 -p22222 "pkill -f 'ssh -f -N -T -R32400:localhost:32400 remote@remote'"
4
ответ дан 1 December 2019 в 13:23

Что-то вроде этого ужасная острота может сделать это:

ssh user1@server1 -p22222 "kill \$(ps -ef | awk '/[s]sh -f -N -T -R32400:localhost:32400 remote@remote/{print \$2}')"

выход, возможно, все еще нуждался бы в некоторых корректировках (не протестировал его).

3
ответ дан 1 December 2019 в 13:23

Другие вопросы по тегам:

Похожие вопросы: