Убить процесс по имени и пользователю - PullRequest
4 голосов
/ 28 апреля 2011

Я пытаюсь выяснить, есть ли способ убить все процессы по имени и пользователю.Например, я хочу убить все экземпляры Java, запущенные пользователем myuser.

На данный момент я делаю:

$ pgrep -u myuser java
2185
3281
3413
3504
22534
26174
27554

, который дает список pid java, запущенный mysuer.Затем я убиваю каждый пид индивидуально.Есть ли лучший способ сделать это?

Заранее спасибо!

Ответы [ 5 ]

6 голосов
/ 28 апреля 2011

Использование killall(1):

killall -u myuser java

Обратите внимание, что вам может потребоваться сделать это через sudo, и вам может потребоваться -9 для уничтожения процессов, которые глотают SIGTERM:

sudo killall -9 -u myuser java
0 голосов
/ 04 мая 2018

Вы можете сделать это, используя

killall -u user

Но иногда это приводит к неработающему процессу.

Лучший способ может быть таким: -

psu | grep user | awk  '{print $2}' | xargs   kill -9

ПРИМЕЧАНИЕ: - это также уничтожит ваш текущий сеанс вошедшего в систему на сервере, если вы уничтожаете процессы, запущенные пользователем, вошедшим в систему.

Спасибо.

0 голосов
/ 16 декабря 2013

Я знаю, что это старый, но здесь это bash-скрипт, позволяющий легко это сделать:1004 *https://soroo.sh/linux/kill-processess-by-name

0 голосов
/ 04 октября 2013

следующая команда может сделать работу

$ pkill -u user process_name

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

0 голосов
/ 28 апреля 2011

Ты рядом:

$> pgrep -u myuser java | xargs kill
...