Иногда, когда я пытаюсь запустить Firefox, он говорит: «Процесс Firefox уже запущен». Так что я должен сделать это:
jeremy@jeremy-desktop:~$ ps aux | grep firefox
jeremy 7451 25.0 27.4 170536 65680 ? Sl 22:39 1:18 /usr/lib/firefox-3.0.1/firefox
jeremy 7578 0.0 0.3 3004 768 pts/0 S+ 22:44 0:00 grep firefox
jeremy@jeremy-desktop:~$ kill 7451
То, что я хотел бы, это команда, которая сделает все это для меня. Он будет принимать входную строку и grep
для нее (или чего-либо еще) в списке процессов, и убьет все процессы в выводе:
jeremy@jeremy-desktop:~$ killbyname firefox
Я пытался сделать это в PHP, но, exec('ps aux')
кажется, показывает только процессы, которые были выполнены exec()
в самом скрипте PHP (поэтому единственный процесс, который он показывает, это сам).
pkill -f "Process name"
команду ...Ответы:
Дополнительная информация: http://linux.about.com/library/cmd/blcmdl1_pkill.htm
источник
-f
.pkill -U <username>
довольно удобно. У меня есть веб-сервер Solaris , настоящий демон веб-сервера, настроенный как служба со своим собственным пользователем. Таким образом, указание пользователем - это простой / легкий способ вызвать перезапуск.-f
флаг для комплексного решения.Также возможно использование:
Для меня это сработало идеально. Это было то, что я искал. pkill не работает с именем без флага.
Когда
-f
установлено, полная командная строка используется для сопоставления с образцом.источник
-f
действительно нужен вариант. напримерpkill -f "EvilWindowsServer.exe"
-f
флаг, чтобы убить фоновый процесс, выполняющий скрипт Python.pkill -f -9 PROCESSNAME
Вы можете убить процессы по имени с помощью
killall <name>
Но если вы не видите процесс с
ps aux
, вы, вероятно, не будете иметь права убить его ...источник
killall -s KILL firefox
Немного длиннее альтернатива:
источник
Самый простой способ сделать это - сначала проверить, что вы получаете правильные идентификаторы процессов с помощью:
Если результат соответствует ожиданиям. Идти с:
источник
Странно, но я не видел такого решения:
он также может убить несколько процессов (несколько pids), таких как:
Я предпочитаю,
pidof
поскольку он имеет однострочный вывод:источник
kill: invalid number 'pidof myprogram'
. Что здесь плохого?Убить все процессы
snippet
в пути запуска. Вы можете убить все приложения, запущенные из некоторого каталога, добавив / directory / в качестве фрагмента. Это очень полезно, когда вы запускаете несколько компонентов для одного и того же приложения из одного каталога приложений.* Я бы предпочел pgrep, если доступно
источник
grep
.ps ax | awk '/[s]nippet/ { print $1 }' | xargs kill
[s]
работает с точки зрения несоответствия самого процесса awk?[x]y
соответствует строке,xy
а не наоборот. Это общий FAQ. Ссылка на страницу более 20 лет назад, которая объясняет это более подробно; и это был постоянный вопрос уже тогда.На Mac я не смог найти pgrep и pkill, ни killall не работал, поэтому написал простой однострочный скрипт:
Если есть более простой способ сделать это, пожалуйста, поделитесь.
источник
Используя
#killall
команду:источник
Чтобы убить с помощью grep:
источник
правильнее было бы:
источник
export
переменная, которую вы собираетесь использовать только один раз в одном и том же процессе?Я обычно использую
killall
команду.Проверьте эту ссылку для деталей этой команды.
источник
Я задавал себе тот же вопрос, но проблема с текущими ответами заключается в том, что они не могут безопасно проверить процессы, которые нужно уничтожить, чтобы ... это могло привести к ужасным ошибкам:) ... особенно, если несколько процессов соответствуют шаблону .
Как заявление об отказе от ответственности, я не профессионал, и, безусловно, есть место для улучшений.
Поэтому я написал небольшой сценарий sh:
источник
Если вы запускаете GNOME, вы можете использовать системный монитор (System-> Administration-> System Monitor), чтобы завершать процессы, как в Windows. У KDE будет что-то похожее.
источник
Команда по умолчанию
kill
принимает имена команд в качестве альтернативы PID. Смотрите убить (1) . Часто возникающая проблема заключается в том, что онаbash
предоставляет свои собственные,kill
которые принимают номера заданий, напримерkill %1
, но не имена команд. Это мешает команде по умолчанию. Если первая функциональность более полезна для вас, чем последняя, вы можете отключитьbash
версию, вызвавenable -n kill
Для получения дополнительной информации см.
kill
Иenable
записи в bash (1) .источник
enable -n kill
?enable kill
kill -9 $ (ps aux | grep -e myprocessname | awk '{print $ 2}')
источник
источник
awk oneliner, который анализирует заголовок
ps
вывода, поэтому вам не нужно заботиться о номерах столбцов (кроме имен столбцов). Поддержка регулярных выражений. Например, чтобы убить все процессы, имя исполняемого файла (без пути) которых содержит слово «firefox», попробуйтеисточник