
Как убить Firefox из командной строки?
Я пытался:
pkill firefox # the command was known to work previously
pkill -9 firefox
kill -9 firefox # descibed in https://unix.stackexchange.com/questions/8916/when-should-i-not-kill-9-a-process
bash: kill: firefox: arguments must be process or job IDs
killall firefox #described in https://appuals.com/restart-firefox-command-line/
Все напрасно.
Выход
ps aux | grep -i firefox | grep -v grep
является
v 2419 1.7 7.7 4026824 458876 ? Sl 12:56 0:51 /usr/lib/firefox/firefox -new-window
v 2483 0.0 0.6 190540 38684 ? Sl 12:56 0:00 /usr/lib/firefox/firefox -contentproc -parentBuildID 20210927210923 -prefsLen 1 -prefMapSize 246254 -appdir /usr/lib/firefox/browser 2419 true socket
v 2515 0.0 2.0 2407620 119704 ? Sl 12:56 0:01 /usr/lib/firefox/firefox -contentproc -childID 1 -isForBrowser -prefsLen 102 -prefMapSize 246254 -jsInit 286204 -parentBuildID 20210927210923 -appdir /usr/lib/firefox/browser 2419 true tab
v 2553 0.5 2.6 2572708 156816 ? Sl 12:56 0:16 /usr/lib/firefox/firefox -contentproc -childID 2 -isForBrowser -prefsLen 268 -prefMapSize 246254 -jsInit 286204 -parentBuildID 20210927210923 -appdir /usr/lib/firefox/browser 2419 true tab
v 2581 0.0 1.6 2406928 99740 ? Sl 12:56 0:01 /usr/lib/firefox/firefox -contentproc -childID 3 -isForBrowser -prefsLen 4889 -prefMapSize 246254 -jsInit 286204 -parentBuildID 20210927210923 -appdir /usr/lib/firefox/browser 2419 true tab
v 2612 0.3 3.7 2648096 225204 ? Sl 12:56 0:09 /usr/lib/firefox/firefox -contentproc -childID 4 -isForBrowser -prefsLen 5588 -prefMapSize 246254 -jsInit 286204 -parentBuildID 20210927210923 -appdir /usr/lib/firefox/browser 2419 true tab
v 2866 0.0 1.2 2373260 72628 ? Sl 12:58 0:00 /usr/lib/firefox/firefox -contentproc -childID 5 -isForBrowser -prefsLen 5701 -prefMapSize 246254 -jsInit 286204 -parentBuildID 20210927210923 -appdir /usr/lib/firefox/browser 2419 true tab
v 2998 0.0 0.6 194220 39176 ? Sl 13:12 0:00 /usr/lib/firefox/firefox -contentproc -parentBuildID 20210927210923 -prefsLen 5926 -prefMapSize 246254 -appdir /usr/lib/firefox/browser 2419 true rdd
решение1
вкратце: pkill -f firefox
делает свое дело.
Я нашел это на pkill/pgrep
страницах руководства:
Имя процесса, используемое для сопоставления, ограничено 15 символами, присутствующими в выводе /proc/pid/stat. Используйте опцию -f для сопоставления с полной командной строкой, /proc/pid/cmdline.
Имея /usr/lib/firefox/firefox
PID 691953
при локальном тестировании на моей машине, я обнаружил следующее /proc/691953/stat
:
691953 (GeckoMain) .... # truncated by me
Убиваю pkill GeckoMain
Firefox, как и обещал. killall GeckoMain
Тоже работает.
Самым простым решением, вероятно, будет указать флаг -f
для pkill
сопоставления /proc/<pid>/cmdline
, который в моем случае содержал /usr/lib/firefox/firefox
.
решение2
kill
работает только с идентификатором процесса
- Откройте терминал и разверните его на весь экран.
- Введите
ps -ef | grep firefox
, чтобы отобразить ВСЕ процессы Firefox - Идентификатор процесса # — второй столбец.
- Вероятно, вы ищете того, кто наверху, с аргументами
-new-window
(он не всегда наверху) - Если вы не уверены, введите
top
и подтвердите идентификатор процесса Firefox, который вы хотите завершить. - Затем введите,
kill -9 1234
где 1234 = идентификатор вашего процесса.
Похожий ответздесь
решение3
Я знаю, что вам нужна простая команда. Лучше сделайте псевдоним для:
pgrep firefox | xargs kill
Например: постоянная команда. Отредактируйте файл ./bashrc.
$ vim ~/.bashrc
Найдите место в файле, где вы хотите сохранить псевдонимы. Например, вы можете добавить их в конец файла. Для целей организации вы можете оставить комментарий перед вашими псевдонимами, например, так:
alias foxkiller="pgrep firefox | xargs kill 2>/dev/null"
Если вы хотите использовать новый псевдоним foxkiller
в текущем сеансе, выполните следующую команду:
$ source ~/.bashrc
Итак, у вас будет foxkiller
команда на завершение работы Firefox.
решение4
Я написал небольшое приложение на языке C, которое делает свое дело.
убить firefox
уничтожит все запущенные экземпляры
само собой разумеется, его можно использовать для любого имени процесса
kkiller — это демон, который отслеживает запрошенные имена и завершает их, если они становятся активными процессами.
Вы можете найти это здесь: