Программа удаления kaspersky free. Как полностью удалить Kaspersky Anti-Virus с компьютера. Как полностью удалить Касперского с помощью сторонних утилит

М ы покажем вам, как убить процесс в Linux. Одним из главных преимуществ Linux, является возможность завершить процесс без необходимости перезагрузки сервера. В этой статье мы покажем вам, как убить процесс в Linux с помощью команды kill, pkill и killall.

1. Что такое PID

Прежде чем мы начнем, мы должны знать, что такое ID процесса (PID).

PID представляет собой цифровую идентификацию процесса в . Каждый процесс имеет уникальный PID. В самом деле, например, первый процесс, который начинается в системе на базе Linux, это процесс, и его PID устанавливается в 1. Этот процесс является родителем всех остальных процессов. Процесс инициализации не может быть убит с помощью команд kill, и это гарантирует, что это не будет случайно убит.

Теперь для того, чтобы найти PID каждого запущенного процесса на сервере мы можем выполнить следующую команду:

Это дает нам список всех запущенных процессов и их соответствующие PIDы.

Если мы хотим найти PID определенного процесса, мы можем использовать команду pidof с последующим именем процесса. Например, чтобы узнать PID нашего процесса MySQL, можно выполнить следующую команду:

Pidof mysql

Для еще более подробной информации, мы можем использовать команду ps aux вместе с grep :

Ps aux | grep mysql

Теперь, когда мы знаем, что такое PID и как найти PID конкретного процесса мы можем перейти к следующему разделу и узнать, как убить его.

2. Убить процесс с помощью команды kill в Linux

Есть несколько важных правил, которые мы должны знать, прежде чем начать использовать команду kill.

  • Вы можете убить только собственные процессы, которые принадлежат вашему идентификатору пользователя
  • Вы не можете убивать процессы других пользователей
  • Вы не можете убить системные процессы (если вы не суперпользователь)
  • Пользователь root может убить процесс любого другого пользователя и любой системный процесс

Когда мы убиваем процесс с командой kill, мы на самом деле отправляем конкретный сигнал PID-регулятор, который мы хотим убить. Следующие сигналы используются командой kill:

1 = Hung up 9 = Kill 15 = Terminate

Сигнал hung up используется редко. Чаще всего мы используем сигнал kill, и если он не работает, то мы можем использовать сигнал Terminate.

Поэтому, как только мы находим PID процесса, который мы хотим убить, используйте один из методов, описанных нами ранее, мы можем использовать команду kill -9 PID , чтобы убить процесс с этого конкретного PID.

Например, если PID равный 6738, то мы можем использовать следующую команду:

Kill -9 6738

3. Убить процесс с помощью команды pkill в Linux

Если вы хотите использовать имя процесса вместо его PID, чтобы убить его, то вы можете использовать команду pkill. Например, если процесс, который мы хотим убить называется , то мы можем использовать следующую команду, чтобы убить его:

Pkill mysql

4. Убить процесс с помощью команды killall в Linux

Две предыдущие команды используются, чтобы убить только один конкретный процесс. Но, если мы хотим убить процесс вместе со всеми его дочерними процессами мы можем использовать команду killall :

Killall mysql

В этом примере мы убьем процесс MySQL и все его дочерние процессы.

Они являются наиболее распространенными примерами убийства процесса в Linux.

Не смотря на свою стабильность, некоторые приложения в Linux иногда виснут. Иногда приложения перестают отзываться или просто работают так медленно, что корректно закрыть их не получается. Один из способов «убить», запущенное приложение в Linux, это использование таких команд, как kill или killall. Рассмотрим, как использовать эти команды, находить PID процесса и посылать сигнал SIGKILL.

Под процессом мы будем понимать запущенную в системе копию программы. Например, если вы открыли три окна калькулятора (например, gcalctool), это значит, что вы запустили три процесса.

Находим PID зависшего процесса

Каждый процесс в Linux имеет свой идентификатор, называемый PID. Перед тем, как выполнить остановку процесса, нужно определить его PID. Для этого воспользуемся командами ps и grep. Команда ps предназначена для вывода списка активных процессов в системе и информации о них. Команда grep запускается одновременно с ps (в канале) и будет выполнять поиск по результатам команды ps. Вывести список всех процессов можно, выполнив в командной строке:

Но, как правило, список очень большой и найти процесс, который мы хотим «убить», бывает не так просто. Здесь на помощь приходит команда grep. Например, чтобы найти информацию о процессе с именем gcalctool выполните команду:

ps axu | grep gcalctool

Команда grep выполнит поиск по результатам команды ps и на экран будут выведены только те строки, которые содержат строку (слово) gcalctool. Здесь есть одна интересная деталь, например, если у вас не запущено приложение gcalctool, то после выполнения ps axu | grep gcalctool вы получите:

$ ps axu | grep gcalctool yuriy 25587 0.0 0.0 10636 884 pts/2 S+ 10:20 0:00 grep --color=auto gcalctool

То есть мы получили сам процесс grep, так как в качестве параметра команде мы указали слово gcalctool, и grep нашел сам себя в выводе команды ps .

Если процесс gcalctool запущен, то мы получим:

Yuriy@yuriy-NIX:~$ ps axu | grep gcalctool yuriy 25609 7.6 0.4 500840 17964 ? Sl 10:20 0:00 gcalctool yuriy 25624 0.0 0.0 10640 884 pts/2 S+ 10:21 0:00 grep --color=auto gcalctool

Здесь нас интересует строка: «yuriy 25609 7.6 0.4 500840 17964 ? Sl 10:20 0:00 gcalctool ». Число 25609 и есть идентификатор (PID) процесса gcalctool.

Есть еще один более простой способ узнать PID процесса — это команда pidof , которая принимает в качестве параметра название процесса и выводит его PID. Пример выполнения команды pidof:

$ pidof gcalctool 25609

«Убиваем» процесс командой kill

Когда известен PID процесса, мы можем убить его командой kill . Команда kill принимает в качестве параметра PID процесса. Например, убьем процесс с номером 25609:

Kill 25609

Вообще команда kill предназначена для посылки сигнала процессу. По умолчанию, если мы не указываем какой сигнал посылать, посылается сигнал SIGTERM (от слова termination — завершение). SIGTERM указывает процессу на то, что необходимо завершиться. Каждый сигнал имеет свой номер. SIGTERM имеет номер 15. Список всех сигналов (и их номеров), которые может послать команда kill, можно вывести, выполнив kill -l . Чтобы послать сигнал SIGKILL (он имеет номер 9) процессу 25609, выполните в командой строке:

Kill -9 25609

Сигнал SIGTERM может и не остановить процесс (например, при перехвате или блокировке сигнала), SIGKILL же выполняет уничтожение процесса всегда, так как его нельзя перехватить или проигнорировать.

Убиваем процессы командой killall

Команда killall в Linux предназначена для «убийства» всех процессов, имеющих одно и то же имя. Это удобно, так как нам не нужно знать PID процесса. Например, мы хотим закрыть все процессы с именем gcalctool. Выполните в терминале:

Killall gcalctool

Команда killall, также как и kill, по умолчанию шлет сигнал SIGTERM. Чтобы послать другой сигнал нужно воспользоваться опцией -s . Например:

Killall -s 9 gcalctool

Заключение

Некоторые процессы не удается остановить под обычным пользователем. Например, если процесс был запущен от имени пользователя root или от имени другого пользователя системы, то команды kill и killall нужно выполнять от имени суперпользователя, добавляя sudo (в Ubuntu):

Sudo kill 123

Бывают ситуации, когда вы работаете в графическом интерфейсе (например, GNOME) и вам не удается открыть эмулятор терминала, чтобы остановить зависший процесс. Тогда можно переключиться на виртуальную консоль клавишами Ctrl+Alt+F1 , залогиниться в ней и выполнять команды уже из нее. А потом перейти обратно, нажав Ctrl+Alt+F7 .

Справку по использованию любой команды можно получить командой man:

Man ps man grep man pidof man kill man killall



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: