Завершаем процессы в Linux

Давайте рассмотрим, как идентифицировать и уничтожать определенные процессы с помощью эмулятора терминала Linux.

В этом практическом руководстве мы рассмотрим различные способы использования эмулятора терминала для идентификации процессов и способов их уничтожения. Процесс может быть приложением или сценарием, работающим на вашем компьютере с Linux. Иногда процесс может рухнуть или начать потреблять память, и тогда нам нужно вмешаться и «убить» процесс. Как всегда, есть множество инструментов, которые мы можем использовать для этого. Мы будем использовать различные подходы и инструменты для идентификации и уничтожения процессов.Пока вы привыкаете к этим командам, важно позаботиться о том, чтобы не убить процесс, который приведет к потере работоспособности. По возможности используйте приложение, которое в данный момент не используется на вашем компьютере, в качестве примера процесса, который нужно убить.Все команды в этом руководстве будут работать на большинстве машин Linux. Мы использовали установку Ubuntu 20.04, но вы можете запустить это руководство на Raspberry Pi . Все инструкции выполняются через Терминал. Вы можете открыть окно терминала на большинстве компьютеров с Linux, нажав ctrl, alt и t.

Как «убить» известное приложение в Linux.

Для начала давайте откроем программное приложение, а затем в терминале используем команду killall, чтобы убить приложение. В качестве примера мы использовали Inkscape, бесплатный пакет векторной графики с открытым исходным кодом, но на самом деле не имеет значения, что вы используете, до тех пор, пока не зависите от него.

Использование команды killall убивает все процессы, связанные с указанным приложением. Позже мы рассмотрим использование команды kill для уничтожения определенного процесса.

1. Запустите Inkscape или другое тестовое приложение из системного графического интерфейса.

2. В терминале используйте команду killall , чтобы убить все процессы Inkscape. Вы должны увидеть, что Inkscape сразу же закрывается при выполнении этой команды.

Идентификация различных процессов в Linux.

Часто в программных приложениях запущено множество процессов, и может быть полезно попытаться выяснить, какой из них, вероятно, вызывает проблему. Например, это может быть одно окно браузера, а не все Chromium или Firefox. Затем вы можете закрыть проблемный процесс, оставив остальную часть приложения работать. Мы можем использовать top инструмент в терминале, чтобы просматривать, взаимодействовать и затем уничтожать процессы.

1. Запустите top инструмент в терминале. Когда он будет запущен, вы увидите, что терминал заполняется информацией обо всех процессах и их статусе. Вторая строка верхнего экрана показывает общее количество задач, которые в данный момент запущены, а также находятся в спящем, остановленном или зомби-статусе. Ниже вы увидите список процессов, и эта информация будет обновляться по умолчанию каждые три секунды.

killall inkscape

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

3. Нажмите z , чтобы добавить цвет к top интерфейсу, чтобы его было легче читать. Поскольку это текстовый интерфейс, добавление цвета может помочь различать метки и данные.

4. Запустите Inkscape или другое несущественное приложение.

5. Найдите список для Inkscape и запишите PID. PID — это число, назначенное для идентификации процесса, и они перечислены в первом столбце верхнего вывода. В нашем примере PID для inkscape был 4582, но он будет другим при каждом запуске Inkscape.

6. Нажмите k , а затем введите номер PID, чтобы завершить процесс.

7. Нажмите ENTER , и вы должны увидеть сообщение «Send pid 4582 signal [15/sigterm]» , подтверждающее, что вы хотите завершить этот процесс. Нажмите «ввод» еще раз, чтобы подтвердить и завершить процесс.

8. Нажмите q , чтобы закрыть верхнюю часть и вернуться к эмулятору терминала. Часто вам захочется взглянуть сверху , чтобы быстро просмотреть процессы, а затем вернуться к терминалу.

Уничтожение отдельного процесса за пределами top’а.

Иногда вам может понадобиться убить отдельный процесс за пределами top. Для этого мы можем использовать номер PID, найденный через top, в сочетании с командой kill. Обратите внимание, что команда killall , которую мы использовали ранее, не будет работать с индивидуальным PID.

1. Запустите Inkscape или другое приложение. Выбор приложения на самом деле не имеет значения, просто убедитесь, что вы не работаете в приложении.

2. Запускаем top в терминале. Нажмите i и z, чтобы ограничить результаты и добавить цвет к верхней теме.

top

3. Определите и запишите PID приложения, которое нужно убить. В нашем примере PID для Inkscape был 4582.

4. Выйдите из верхней части , нажав q .

5. Используйте команду kill и номер PID, чтобы убить процесс Inkscape из эмулятора терминала. Замените пример значения PID, приведенный ниже, вашим собственным идентификатором PID.

kill 4582

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

Уничтожение процессов с помощью отчета о процессах ps.

Есть альтернатива top’у. Мы можем использовать команду ps, предназначенную для создания отчета обо всех запущенных процессах.

1. Запустите Inkscape или другое приложение. Выбор приложения на самом деле не имеет значения, просто убедитесь, что вы не работаете в приложении.

2. Запустите команду ps с двумя аргументами. Аргумент -e показывает все процессы, а аргумент -f устанавливает формат в соответствии со стандартным синтаксисом системы.

ps -ef

3. Используйте grep для фильтрации отчета, поиск только для «inkscape». Типичный вывод команды ps -ef очень плотный, содержит десятки запущенных процессов. Используя фильтр, мы можем найти имя приложения. PID — это второй столбец сразу после имени пользователя. Вы можете увидеть несколько идентификаторов PID для приложения. Тот, который нас интересует, просто показывает имя приложения.

ps -ef | grep inkscape

4. Используйте команду kill вместе с PID, чтобы убить процесс. В нашем случае у Inkscape был PID 19166.

kill 19166

Управление процессами — это ключевой навык Linux, который необходимо изучить, и стоит потратить время на то, чтобы попрактиковаться в этих подходах, прежде чем вам понадобится применить их в реальной ситуации.

Lost Password

Please enter your username or email address. You will receive a link to create a new password via email.