Убить вывод ps aux в одну строку - PullRequest
0 голосов
/ 24 октября 2018

Мне приходится делать одно и то же много раз в день:

ps aux

искать процесс запуска ssh на одном из моих серверов ...

kill -9 <pid>

Я ищучтобы увидеть, могу ли я обработать псевдоним в одну строку.Вывод ps aux обычно выглядит примерно так:

user   6871   0.0  0.0  4351260      8   ??  Ss    3:28PM   0:05.95 ssh -Nf -L 18881:my-server:18881
user   3018   0.0  0.0  4334292     52   ??  S    12:08PM   0:00.15 /usr/bin/ssh-agent -l
user   9687   0.0  0.0  4294392    928 s002  S+   10:48AM   0:00.00 grep ssh

Я всегда хочу завершить процесс с my-server в нем.

Кто-нибудь знает, как мне это сделать?

Ответы [ 3 ]

0 голосов
/ 24 октября 2018

for pid in $(ps aux | grep "[m]y-server" | awk '{print $2}'); do kill -9 $pid; done

ps aux |grep "[m] y-сервер" |awk '{print $ 2}' - эта часть предоставляет вам список процессов pids, которые включают "my-server".И этот скрипт пройдет через этот список и уничтожит все эти процессы.

0 голосов
/ 24 октября 2018

Я использую pgrep - если вы уверены, что хотите убить все процессы, которые соответствуют:

$ kill -9 `pgrep my-server`
0 голосов
/ 24 октября 2018

Простым решением является использование pkill :

sudo pkill my-server
...