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

Я бы хотел убить все процессы firefox из командной строки.

Например:

MacPro:huangr$ ps -x | grep 'firefox'
 4147 ttys000    0:00.00 (firefox-bin)
 4177 ttys000    0:00.00 (firefox-bin)
 4234 ttys000    0:00.00 (firefox-bin)
 4273 ttys000    0:00.00 (firefox-bin)
 4282 ttys000    0:00.00 (firefox-bin)
 4285 ttys000    0:00.00 (firefox-bin)
 4298 ttys000    0:00.00 (firefox-bin)
 4301 ttys000    0:00.00 (firefox-bin)
 4304 ttys000    0:00.00 (firefox-bin)
 4311 ttys000    0:00.00 (firefox-bin)
 4317 ttys000    0:00.00 (firefox-bin)
 4320 ttys000    0:00.00 (firefox-bin)
 4338 ttys000    0:00.00 (firefox-bin)
 4342 ttys000    0:00.00 (firefox-bin)
 4377 ttys000    0:03.85 /Applications/Firefox.app/Contents/MacOS/firefox-bin -no-remote -foreground
 4394 ttys000    0:05.54 /Applications/Firefox.app/Contents/MacOS/firefox-bin -no-remote -foreground
 4471 ttys000    0:06.08 /Applications/Firefox.app/Contents/MacOS/firefox-bin -no-remote -foreground
 4581 ttys002    0:04.92 /Applications/Firefox.app/Contents/MacOS/firefox-bin -no-remote -foreground
 4607 ttys002    0:04.33 /Applications/Firefox.app/Contents/MacOS/firefox-bin -no-remote -foreground
 4626 ttys002    0:05.04 /Applications/Firefox.app/Contents/MacOS/firefox-bin -no-remote -foreground

Я бы хотел убить их всех одним выстрелом, есть ли простой способ сделать это? Спасибо.

Ответы [ 5 ]

9 голосов
/ 21 декабря 2011
kill -9 $(ps -x | grep 'firefox' | awk '{print $1}')

Должен это сделать

2 голосов
/ 22 декабря 2011

Это прекрасно работает.

ps -ef | grep '[f]irefox' | awk '{print $1}' | xargs kill -9 ;

или

ps -ef | awk '/[f]irefox/ {print $1}' | xargs kill -9 ;
1 голос
/ 22 декабря 2011

Дополнительное примечание -

kill -9 является избыточным (не рассчитан на каламбур), потому что он не позволяет запускать процесс очистки (например, вызовы atexit (), такие как разница между exit и _exit).Это может быть или не быть проблемой с Firefox, но в целом попробуйте попробовать "kill -9" только после неудачного простого "kill".

0 голосов
/ 22 декабря 2011

Это должно сделать это -

kill `awk '$4~/firefox/{print $1}' <(ps -x)`

Или на общей ноте добавить эту функцию в скрипт запуска -

killp() {
awk -v pname="$1" '$4~/pname/{print $1}' <(ps -e) | xargs kill
}

Тест:

[jaypal:~/Temp] sleep 100&
[1] 52530
[jaypal:~/Temp] sleep 100&
[2] 52531
[jaypal:~/Temp] killp sleep
[1]-  Terminated: 15          sleep 100
[2]+  Terminated: 15          sleep 100
0 голосов
/ 21 декабря 2011

killall firefox-bin

или

killall -9 firefox-bin

при необходимости

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...