- Classic SysAdmin: How to Kill a Process from the Linux Command Line
- Locating the process
- Killing the process
- Завершить процесс через командную строку linux
- NAME
- SYNOPSIS
- DESCRIPTION
- OPTIONS
- EXAMPLES
- SEE ALSO
- STANDARDS
- AUTHOR
- REPORTING BUGS
- 7 способов «убить» зависшее приложение в Linux
- 1. Завершить программу в Linux, просто нажав на «X»
- 2. Воспользуйтесь системным монитором, чтобы «убить» процесс Linux
- 3. Принудительное уничтожение процесса Linux с помощью xkill
- 4. Используйте команду «kill»
- 5. Используйте команды «pgrep» и «pkill»
- 6. Уничтожить все экземпляры процесса с помощью «killall»
- 7. Создайте комбинацию клавиш
- Избегайте зависаний программ: обновите свое оборудование
Classic SysAdmin: How to Kill a Process from the Linux Command Line
This is a classic article written by Jack Wallen from the Linux.com archives. For more great SysAdmin tips and techniques check out our free intro to Linux course.
Picture this: You’ve launched an application (be it from your favorite desktop menu or from the command line) and you start using that launched app, only to have it lock up on you, stop performing, or unexpectedly die. You try to run the app again, but it turns out the original never truly shut down completely.
What do you do? You kill the process. But how? Believe it or not, your best bet most often lies within the command line. Thankfully, Linux has every tool necessary to empower you, the user, to kill an errant process. However, before you immediately launch that command to kill the process, you first have to know what the process is. How do you take care of this layered task? It’s actually quite simple…once you know the tools at your disposal.
Let me introduce you to said tools.
The steps I’m going to outline will work on almost every Linux distribution, whether it is a desktop or a server. I will be dealing strictly with the command line, so open up your terminal and prepare to type.
Locating the process
The first step in killing the unresponsive process is locating it. There are two commands I use to locate a process: top and ps. Top is a tool every administrator should get to know. With top, you get a full listing of currently running process. From the command line, issue top to see a list of your running processes (Figure 1).
From this list you will see some rather important information. Say, for example, Chrome has become unresponsive. According to our top display, we can discern there are four instances of chrome running with Process IDs (PID) 3827, 3919, 10764, and 11679. This information will be important to have with one particular method of killing the process.
Although top is incredibly handy, it’s not always the most efficient means of getting the information you need. Let’s say you know the Chrome process is what you need to kill, and you don’t want to have to glance through the real-time information offered by top. For that, you can make use of the ps command and filter the output through grep. The ps command reports a snapshot of a current process and grep prints lines matching a pattern. The reason why we filter ps through grep is simple: If you issue the ps command by itself, you will get a snapshot listing of all current processes. We only want the listing associated with Chrome. So this command would look like:
The aux options are as follows:
- a = show processes for all users
- u = display the process’s user/owner
- x = also show processes not attached to a terminal
The x option is important when you’re hunting for information regarding a graphical application.
When you issue the command above, you’ll be given more information than you need (Figure 2) for the killing of a process, but it is sometimes more efficient than using top.
Killing the process
Now we come to the task of killing the process. We have two pieces of information that will help us kill the errant process:
Which you use will determine the command used for termination. There are two commands used to kill a process:
There are also different signals that can be sent to both kill commands. What signal you send will be determined by what results you want from the kill command. For instance, you can send the HUP (hang up) signal to the kill command, which will effectively restart the process. This is always a wise choice when you need the process to immediately restart (such as in the case of a daemon). You can get a list of all the signals that can be sent to the kill command by issuing kill -l. You’ll find quite a large number of signals (Figure 3).
The most common kill signals are:
Завершить процесс через командную строку linux
NAME
kill - send a signal to a process
SYNOPSIS
DESCRIPTION
The default signal for kill is TERM. Use -l or -L to list available signals. Particularly useful signals include HUP, INT, KILL, STOP, CONT, and 0. Alternate signals may be specified in three ways: -9, -SIGKILL or -KILL. Negative PID values may be used to choose whole process groups; see the PGID column in ps command output. A PID of -1 is special; it indicates all processes except the kill process itself and init.
OPTIONS
[. ] Send signal to every listed. - -s --signal Specify the signal to be sent. The signal can be specified by using name or number. The behavior of signals is explained in signal(7) manual page. -l, --list [signal] List signal names. This option has optional argument, which will convert signal number to signal name, or other way round. -L, --table List signal names in a nice table. NOTES Your shell (command line interpreter) may have a built-in kill command. You may need to run the command described here as /bin/kill to solve the conflict.
EXAMPLES
kill -9 -1 Kill all processes you can kill. kill -l 11 Translate number 11 into a signal name. kill -L List the available signal choices in a nice table. kill 123 543 2341 3453 Send the default signal, SIGTERM, to all those processes.
SEE ALSO
kill(2), killall(1), nice(1), pkill(1), renice(1), signal(7), skill(1)
STANDARDS
This command meets appropriate standards. The -L flag is Linux-specific.
AUTHOR
Albert Cahalan ⟨albert@users.sf.net⟩ wrote kill in 1999 to replace a bsdutils one that was not standards compliant. The util-linux one might also work correctly.
REPORTING BUGS
© 2019 Canonical Ltd. Ubuntu and Canonical are registered trademarks of Canonical Ltd.
7 способов «убить» зависшее приложение в Linux
Программное обеспечение Linux достаточно надежно, но бывает, что даже самые лучшие приложения могут зависнуть. Вместо того, чтобы ждать сообщения о сбое в работе приложений, вы можете «убить» их, принудительно завершив. На самом деле способов это сделать существует настолько много, что глаза разбегаются!
Если у вас возникают такие проблемы, вот несколько способов, как принудительно завершить программу в Linux.
1. Завершить программу в Linux, просто нажав на «X»
Вы, наверное, уже пытались уйти и сделать себе чашечку кофе, но когда вернулись, обнаружили, что ваша программа зависла, вероятно, у него было достаточно времени, чтобы «отвиснуть», но этого не произошло. Зависшее приложение обычно имеет серые неактивные кнопки управления и у него пропадает возможность перемещения.
Итак, как эту проблему решить? Нажмите на «крестик» в верхнем углу (слева или справа, в зависимости от версии системы Linux). Это должно помочь. Возможно, появится окно с просьбой подождать или принудительно завершить процесс, а также отправить отчет об ошибке.
2. Воспользуйтесь системным монитором, чтобы «убить» процесс Linux
Следующий вариант — открыть утилиту System Monitor вашей операционной системы Linux. Обычно она находится в меню «Системные инструменты» и отображает список запущенных процессов на вкладке «Процессы«.
Чтобы закрыть не отвечающее приложение, просто выберите его и щелкните правой кнопкой мыши. Затем у вас появится три варианта:
- Остановить: приостанавливает процесс, позволяя продолжить его позже. Не будет работать в большинстве случаев.
- Завершить: правильный способ закрыть процесс, он безопасно завершит работу приложения, вместе с ним удаляя временные файлы.
- Убить: вариант на крайний случай и его рекомендуется применять только в случае сбоя.
Лучше всего использовать их по порядку. Однако, если приложение регулярно зависает, можно использовать вариант, в котором вы точно уверены.
3. Принудительное уничтожение процесса Linux с помощью xkill
Другой вариант — использование команды xkill в терминале. Это инструмент принудительного уничтожения процесса, который предустановлен в Ubuntu, но его можно также установить через терминал в других дистрибутивах, если необходимо. xkill позволит закрыть любой процесс. Установить его можно с помощью следующей команды:
sudo apt install xorg-xkill
Как только установите, наберите:
Вместо указателя мыши появится крест (или череп). Далее необходимо щелкнуть левой кнопкой мыши на зависшем приложении, чтобы закрыть его.
Если невозможно закрыть зависшее приложение одним из этих методов, то решение может быть в терминале Linux.
4. Используйте команду «kill»
Если ни один из вышеперечисленных методов не помог и приложение до сих пор не отвечает, нажмите Ctrl + Alt + T, чтобы открыть терминал.
Есть несколько команд, которые должны помочь закрыть ваше приложение. Более того, их можно использовать как на вашем компьютере, так и подключившись удаленно через SSH.
Команда kill может быть использована только с указанием идентификатора процесса. Сначала выясним его:
ps aux | grep [имя программы]
В результате вы увидите ID нужного процесса. Далее используем команду:
Возможно, вам понадобятся системные права для использования программы, тогда используйте sudo.
5. Используйте команды «pgrep» и «pkill»
Что, если вы не смогли найти идентификатор процесса. Здесь вам поможет команда pkill.
Кроме того, можно использовать команду pgrep, чтобы найти идентификатор процесса:
После этого используйте команду pkill с ID процесса.
Как и в случае команды kill, процесс должен завершиться в течение 5 секунд.
6. Уничтожить все экземпляры процесса с помощью «killall»
Не повезло с kill или pkill? Пришло время использовать ядерную опцию: killall.
К счастью, она не так разрушительна, какой могла бы быть. Команда killall завершит все экземпляры указанной программы. Таким образом, вместо того, чтобы убивать одно окно Firefox, данная команда завершит их все:
Все, что вам нужно, это имя процесса и команда killall (возможно, с sudo, если этого требует ваша система).
Естественно, вы должны использовать эту команду только при необходимости. Она не подходит для большинства ситуаций.
7. Создайте комбинацию клавиш
Хотите сэкономить время на закрытие не отвечающего программного обеспечения? Наилучшим вариантом является создание сочетания клавиш. Это даст вам возможность немедленно закрыть приложение, но для этого потребуется xkill.
В Ubuntu откройте «Настройки«>«Клавиатура» и нажмите «Комбинации клавиш«. Выберите Дополнительные комбинации, затем +, чтобы создать новую. Введите «xkill» для названия, затем нажмите «Применить«. Это вернет вас к списку комбинаций — выберите нужную, затем нажмите необходимую комбинацию клавиш, которую вы будете использовать для ее вызова.
В следующий раз, когда вам нужно закрыть приложение, просто используйте сочетание клавиш. Указатель мыши станет «X», и вы можете щелкнуть в любом месте приложения, которое хотите закрыть.
Избегайте зависаний программ: обновите свое оборудование
Зависающие программы постоянно вызывают проблемы? Возможно, пора немного обновить ваш компьютер.
Установка дополнительной оперативной памяти — это лучший способ повысить производительность вашего компьютера, и, возможно, именно это вам и нужно.
Итак, в следующий раз, когда приложение или утилита Linux зависнет и перестанет отвечать на запросы, все, что вам нужно сделать, это применить одно из следующих решений:
- Завершить программу в Linux, просто нажав на «X».
- Воспользуйтесь системным монитором, чтобы «убить» процесс Linux.
- Принудительное уничтожение процесса Linux с помощью xkill.
- Используйте команду «kill».
- Используйте команды «pgrep» и «pkill».
- Уничтожить все экземпляры процесса с помощью «killall».
- Создайте сочетание клавиш.
Если ни одно из этих решений не работает и вы регулярно испытываете не отвечающие приложения Linux, рассмотрите возможность перехода на облегченную операционную систему Linux.