В настоящее время я использую системный монитор GNOME. Он похож на диспетчер задач и имеет функцию для завершения процесса, но иногда это заставляет все зависать и блокируется. Есть ли способ полностью завершить процесс с помощью командной строки быстрее?
8 ответов
Вы ищете команду убить
чтобы завершить процесс "полностью", как вы просили, вы можете использовать kill следующим образом:
kill -9 PID
хотя это может иметь нежелательные последствия и может оставить временные файлы и тому подобное, вам следует сначала попытаться отправить сигнал завершения:
kill -TERM PID
где PID
- это идентификатор процесса, который вы хотите уничтожить. Использование ключа -9 убьет процесс, несмотря ни на что, поэтому будьте осторожны с этим. Вы можете определить PID приложения, используя команду ps
. Если процесс зависает, он, вероятно, использует немало ресурсов, поэтому вы также можете увидеть его в верхней части списка с помощью команды top
. Системный монитор должен даже сказать вам PID.
Вы также можете использовать что-то вроде этого, чтобы определить PID:
ps -ax | grep program_name
номер слева должен быть PID.
Попробуйте xkill, есть апплет, который вы можете поместить на свою панель. Вы просто нажимаете на него, затем нажимаете на окно приложения, которое хотите убить, и оно мгновенно исчезает. Очень кстати.
Вы можете использовать kill, чтобы отправить желаемый сигнал идентификатору процесса. Вы можете найти идентификатор процесса с помощью pgrep и отправить сигнал названному процессу с помощью pkill. Шаблон, используемый для поиска процесса с помощью pgrep и pkill, обычно сопоставляется только с именем процесса. Укажите -f, чтобы проверить всю командную строку процесса. Начните с сигнала TERM (это значение по умолчанию, если сигнал не указан) перед использованием KILL ('9'), так как прямое завершение процесса может иметь нежелательные побочные эффекты.
Для примера, я буду использовать процесс dhclient3 в моей системе.
Старый путь, пс | Grep:
$ ps awux | grep dhclient3
root 2539 0.0 0.1 2200 220 ? S<s Jul28 0:00 dhclient3 -pf /var/run/dhclient.eth0.pid -lf /var/lib/dhcp3/dhclient.eth0.leases eth0
1000 12734 0.0 0.5 3184 732 pts/3 R+ 21:58 0:00 grep dhclient3
Убить клиента:
$ kill -9 2539
С помощью pgrep/pkill:
$ pgrep dhclient
2539
С -f, чтобы указать шаблон в любом месте командной строки:
$ pgrep -f leases
2539
Завершите процесс dhclient с помощью pkill (сигнал перед шаблоном -f):
$ pkill -f dhclient3
$ pkill -9 -f dhclient3
О сигналах (со страницы man kill):
Сигнал по умолчанию для kill - TERM. Используйте -l или -L для просмотра списка доступных сигналов. Особенно полезные сигналы включают HUP, INT, KILL, STOP, CONT и 0. Альтернативные сигналы могут быть указаны тремя способами: -9 -SIGKILL -KILL. Отрицательные значения PID могут использоваться для выбора целых групп процессов; см. столбец PGID в выводе команды ps. PID -1 является особенным; он указывает на все процессы, кроме самого процесса kill и init.
Я обычно делаю:
ps -feax | grep "TaskNameHere"
Который возвращает PID задачи
затем
kill -9 the_process_id
Мне нравится использовать killall, так как он позволяет вам просматривать имена запущенных процессов, а если вы используете zsh, это даст вам хороший список запущенных процессов. Начните с первой буквы процесса, который вы хотите убить, и нажмите Tab.
killall fi
Если вы нажмете вкладку, то увидите, что у меня есть «Firefox». Повторите команду, и если она говорит, что ни один процесс не был убит, значит, вы выполнили свою задачу.
Я также хотел бы добавить xkill. При вызове этого из терминала (или из командной строки запуска) курсор изменится на значок черепа или скрещенных костей или значок "X". И затем в следующий раз, когда вы нажмете на окно (любое окно), это приложение будет убито.
Я обнаружил, что эта команда более интуитивно понятна и удобна для пользователя.
Вы хотите psdoom. Это шутер от первого лица, в котором монстры связаны с пидом. Убийство монстра отправляет SIGKILL в связанный процесс. Возможно, это не самый эффективный способ убить процесс, но он может быть самым интересным.
Обратите внимание, что если зависший процесс является окном, у вас есть "кнопка" для добавления на панели инструментов Gnome, чтобы завершить процесс (вы нажимаете на него, затем в соответствующем окне)
редактировать: " Force Quit " это название