- Работа с процессами в Linux
- Список процессов
- Команда Kill, Pkill, Killall. Как Убить Процесс в Linux
- Как узнать идентификатор процесса (PID) в Linux
- Как показать все сигналы команды kill
- Как убить процесс в Linux с помощью терминала
- Использование команды kill с PID
- Как убить несколько процессов в Linux
- Как убить процесс в Linux с помощью команды Pkill
- Как убить процесс в Linux с помощью команды killall
- Итоги
- Завершить процесс в Linux – команды ps, kill и killall
- Определить PID процесса – команда pidof
- Завершить процесс в Linux – команды kill и killall
- Завершение процессов в Linux
- Типы сигналов для завершения процессов
- Завершаем процессы в Linux
- Способ 1: «Системный монитор»
- Способ 2: Команда kill
- Способ 3: Команда pkill
- Способ 4: Команда killall
Работа с процессами в Linux
Список процессов
Вывести на экран список текущих процессов, запущенных пользователем, можно командой:
Чтобы посмотреть список всех процессов с дополнительной информацией, вводим:
Мы увидим, примерно, следующее:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 661 0.0 0.0 4072 8 tty1 Ss+ Jul03 0:00 /sbin/mingetty
root 662 0.0 0.0 4072 8 tty2 Ss+ Jul03 0:00 /sbin/mingetty
root 16355 0.0 0.0 171636 3308 pts/0 S 15:46 0:00 sudo su
root 16366 0.0 0.0 140896 1556 pts/0 S 15:46 0:00 su
root 16368 0.0 0.0 108316 1944 pts/0 S 15:46 0:00 bash
root 18830 0.0 0.0 110244 1172 pts/0 R+ 16:20 0:00 ps u
- USER — учетная запись пользователя, от которой запущен процесс.
- PID — идентификатор процесса.
- %CPU — потребление процессорного времени в процентном эквиваленте.
- %MEM — использование памяти в процентах.
- VSZ — Virtual Set Size. Виртуальный размер процесса (в килобайтах).
- RSS — Resident Set Size. Размер резидентного набора (количество 1K-страниц в памяти).
- TTY — терминал, из под которого был запущен процесс.
- STAT — текущее состояние процесса. Могут принимать значения:
- R — выполнимый процесс;
- S — спящий;
- D — в состоянии подкачки на диске;
- T — остановлен;
- Z — зомби.
- W — не имеет резидентных страниц;
- Дмитрий Моск — IT-специалист.
Настройка серверов, компьютерная помощь.
Как управлять процессами в операционной системе Linux
Источник
Команда Kill, Pkill, Killall. Как Убить Процесс в Linux
Задачи в Linux называются процессами. Каждый процесс имеет уникальный идентификатор. Чтобы завершить запущенные процессы Linux, мы можем использовать команду kill. В этом руководстве мы покажем вам, как убить процесс в Linux, чтобы улучшить ваши навыки управления VPS.
Иногда вы можете запустить сервер или приложение, забыть об этом, и вам нужно его выключить. В таких сценариях мы можем использовать команду kill.
Ниже приведены несколько примеров, в которых может быть полезна команда kill:
- Чтобы остановить любой автоматизированный процесс
- Чтобы остановить процесс, который был запущен случайно
- Чтобы остановить процесс, который потребляет много памяти
- Чтобы принудительно остановить любой процесс, запущенный в Linux
- Чтобы остановить фоновый процесс
Помимо остановки процесса, команда kill может выполнять ещё несколько функций. Например, послать сигнал процессу. По умолчанию это воспринимается как сигнал TERM, который завершает процесс.
Как узнать идентификатор процесса (PID) в Linux
Команды kill позволяют завершить процесс, используя идентификатор процесса, также известный как pid. Чтобы узнать pid процесса в Linux, выполните следующую команду:
Команда перечислит все доступные процессы с pid. Если вы хотите сделать свой список более конкретным – добавьте команду grep следующим образом:
В этом примере, команда выведет все запущенные Java-процессы.
Как показать все сигналы команды kill
В Linux доступно несколько сигналов, которые можно использовать для прерывания, завершения или приостановки процессов. Вот пример использования команды:
Эта команда отобразит страницу руководства с различными сигналами kill с их именами и соответствующими номерами. Несмотря на то, что доступно несколько сигналов, в большинстве случаев мы будем использовать SIGKILL (9) и SIGTERM (15).
Как убить процесс в Linux с помощью терминала
Теперь мы готовы двигаться дальше и изучать различные способы использования команды kill. Чтобы продолжить, войдите на свой VPS-сервер с помощью SSH.
Использование команды kill с PID
Чтобы убить процесс с определённым PID, используйте следующую команду:
Здесь 63772 – это идентификатор процесса, который мы хотим завершить. Поскольку сигнал не указан, это будет сигнал SIGTERM. Иногда это может не сработать; в этом случае вам, возможно, придётся принудительно убить процесс.
В таких случаях вы можете использовать формат команды, как показано ниже:
Ниже приведён пример команды для принудительного завершения процесса:
Точно так же вы можете использовать сокращённый вариант команды для завершения процесса Linux:
Замените 63772 соответствующим pid для прекращения процесса.
Как убить несколько процессов в Linux
С помощью одной и той же команды вы можете убить несколько процессов. Синтаксис этой команды будет следующим:
Вот пример, показывающий, как это будет выглядеть на практике:
Как убить процесс в Linux с помощью команды Pkill
Pkill – разновидность команды kill, в которой вы можете указать имя процесса или паттерн для его поиска:
Приведенная выше команда завершит работу браузера Chrome. Вы также можете указать частичное совпадение запроса в командной строке, например:
Однако вы рискуете убить неправильный процесс, особенно когда существует несколько процессов с одинаковым или похожим именем.
Вы можете проверить список, указав полное имя процесса:
Вышеупомянутую команду можно использовать, если вы знаете полное имя процесса.
Вы можете проверить список процессов с похожим названием, используя лишь часть имени:
Эта команда выведет список процессов с соответствующим ID процесса.
Как убить процесс в Linux с помощью команды killall
Основное различие между killall и kill заключается в том, что killall может завершить процесс по имени, в то время как команда kill использует pid.
Пример такой команды:
Команда напоминает pkill. Однако killall использует точное соответствие имени, а pkill может убить процесс, сопоставив паттерн. Это одна из причин, по которой killall безопаснее, чем pkill.
Ещё одно отличие – это корневой пакет, к которому принадлежат команды. В Linux, killall принадлежит пакету psmisc. С другой стороны, такие команды, как ps, top, kill, pkill, принадлежат пакету procps.
Кроме того, killall можно настроить для завершения процессов на основе временных меток. Например, если вы хотите убить процесс, который работал менее 40 минут, вы можете использовать:
Вы также можете использовать следующие параметры вместе с командой killall:
- s – секунды
- m – минуты
- h – часы
- d – дни
- w – недели
- M – месяцы
- y – годы
Итоги
В этом руководстве мы охватили наиболее важные и полезные команды kill в Linux. Теперь вы знаете, как использовать эту утилиту, чтобы убить процесс. Если вы хотите узнать больше о её возможностях, обратитесь к руководству по Linux. Удачи в вашем проекте, до встречи в следующем уроке!
Ольга уже около пяти лет работает менеджером в сфере IT. Написание технических заданий и инструкций — одна из её главных обязанностей. Её хобби — узнавать что-то новое и создавать интересные и полезные статьи о современных технологиях, веб-разработке, языках программирования и многом другом.
Источник
Завершить процесс в Linux – команды ps, kill и killall
Как бы там ни было, но некоторые приложения в Linux иногда зависают. При этом бывают ситуации, когда приложение вообще не отзывается, либо работает так медленно, что корректно завершить его работу не представляется возможным. Чтобы оперативно выйти из получившейся ситуации можно “убить” данный процесс. Для этог используеются команды kill и killall. Сейчас мы разберемся как использоваться эти команды, находить PID процесса и посылать сигнал SIGKILL.
Чтобы избежать путацины, договоримся под процессом понимать запущенную в систему программу. Например, если у вас запушено несколько окон браузера Mozilla Firefox – это значит, что запущено три процесса.
Определить PID процесса – команда pidof
PID – уникальный идентификатор процесса в системе Linux. Чтобы корректно выполнить остановку процесса сначала стоит определить его PID. Для этого используются команды ps и grep. В свою очередь команда ps предназначена для вывода списка активных процессов в системе и информации о них. Команда grep запускается одновременно с ps (в канале) и будет выполнять поиск по результатам команды ps. Вывести список всех процессов можно, выполнив в командной строке:
Разумеется, PID можно определить и через top. Но в большинстве случаев количество процессов слишком велико (и динамически меняется в top), поэтому быстро и правильно определить PID не так уж и просто. Как раз для этого используется команда grep. Например, для завершения процесса браузера Google Chrome необходимо выполнить следующую команду:
]$ ps axu | grep chrome
itechf2 20474 2.7 1.5 938416 120136 tty2 Sl+ 11:07 0:00 /opt/google/chrome/chrome
В нашем случае 20474 и есть искомый PID. Более простой способ – использовать команду pidof, при этом необходимо указывать имя процесса. Например:
]$ pidof chrome
20728 20706 20668 20647 20586 20574 20553 20508 20474
Завершить процесс в Linux – команды kill и killall
Завершить процесс в операционной системе Linux, зная его PID, можно командой kill. Стоит знать и понимать: команда kill предназначена для посылки сигнала процессу. По умолчанию, если мы не указываем какой сигнал посылать, посылается сигнал SIGTERM (от слова termination — завершение). SIGTERM указывает процессу на то, что необходимо завершиться. Каждый сигнал имеет свой номер. SIGTERM имеет номер 15. Список всех сигналов (и их номеров), которые может послать команда kill, можно вывести, выполнив kill -l. Чтобы послать сигнал SIGKILL (он имеет номер 9) процессу 2811, выполните в командой строке:
При этом, сигнал SIGTERM может и не остановить процесс (например, при перехвате или блокировке сигнала), SIGKILL же выполняет уничтожение процесса всегда, так как его нельзя перехватить или проигнорировать.
Команда killall в Linux предназначена для «убийства» всех процессов, имеющих одно и то же имя. Это удобно, так как нам не нужно знать PID процесса. Например, мы хотим закрыть все процессы с именем chrome. Выполните в терминале:
Команда killall, также как и kill, по умолчанию шлет сигнал SIGTERM. Чтобы послать другой сигнал нужно воспользоваться опцией -s. Например:
Нашли ошибку в тексте? Выделите фрагмент текста и нажмите Ctrl+Enter
Источник
Завершение процессов в Linux
Каждая программа, утилита или какой-то другой элемент операционной системы Linux реализовывается в виде одного или нескольких процессов, которые функционируют в фоновом либо активном режиме. Каждый такой процесс потребляет определенное количество системных ресурсов и действует отведенный промежуток времени. Иногда случаются ситуации, требующие немедленного завершения («убийства») такой операции, что связано с ненадобностью ее выполнения или возникновением ошибок. В рамках сегодняшней статьи мы хотим поговорить о методах осуществления этой задачи.
Типы сигналов для завершения процессов
Для начала затронем тему алгоритмов завершения процессов в дистрибутивах, основанных на Linux. Действие системных средств зависит от посылаемых сигналов, которые имеют разные значения и заставляют выполнять определенную последовательность задач. Ниже будут представлены способы, где можно указывать тип сигнала для «убийства» операции, поэтому мы рекомендуем изучить их все, чтобы разобраться в правильности применения.
- SIGINT — стандартный сигнал, использующийся и в графических оболочках. При его отправлении процесс сохраняет все изменения, завершает выполняемые действия и только потом отключается. Если вы работаете через «Терминал», используйте комбинацию клавиш Ctrl + C, чтобы быстро «убить» текущий процесс.
- SIGQUIT — практически не отличается от предыдущего сигнала, но при его отправке программа уже сама решает, стоит ли завершать работу. При этом создается дамп памяти, что может быть полезно определенным пользователям. Это второй и последний сигнал, который можно послать сочетанием клавиш при взаимодействии с «Терминалом». Для этого используется комбинация Ctrl + /.
- SIGHUP — используется для разрыва связи с «Терминалом». Рекомендуется задействовать этот сигнал, если требуется прервать соединение с интернетом.
- SIGTERM — сразу же удаляет процесс, но его дочерние опции продолжают выполняться до полного завершения операций, а после производится освобождение системных ресурсов.
- SIGKILL — аналогичный предыдущему сигнал, но при этом оставшиеся дочерние задачи не прекращают свое функционирование.
Теперь вы знаете обо всех доступных сигналах, использующихся при «убийстве» процессов в разных дистрибутивах Linux. Используйте их вместе с приведенными в методах ниже командами в качестве аргумента.
Завершаем процессы в Linux
Существуют разные системные средства, позволяющие «убить» какой-либо процесс. Иногда для этого приходится узнавать его идентификатор, а в других ситуациях достаточно только названия. Далее мы предлагаем детально изучить все представленные методы, чтобы найти оптимальный для себя и выполнять его при необходимости, учитывая описанные ранее сигналы.
Способ 1: «Системный монитор»
Начнем с самого простого, но менее вариативного метода, который осуществляется через программу графического интерфейса и будет полезен тем пользователям, кто просто хочет завершить процесс, не прибегая при этом к запуску терминальных команд. Рассмотрим эту операцию на стандартной оболочке дистрибутива Ubuntu.
- Перейдите в меню «Показать приложения», где отыщите «Системный монитор» и запустите его, кликнув по значку левой кнопкой мыши.
Дополнительно вы можете переместиться в свойства объекта через контекстное меню, чтобы посмотреть всю информацию о нем.
Щелкните правой кнопкой мыши по строке и выберите пункт «Завершить». Это же действие выполняется через горячую клавиш Ctrl + E. Еще внизу имеется кнопка, позволяющая завершить процесс без вызова контекстного меню.
Если же операция не завершилась по каким-либо причинам, задействуйте опцию «Убить».
В преимущественном большинстве графических оболочек системный монитор реализован похожим образом, поэтому каких-то проблем с пониманием интерфейса возникнуть не должно.
Способ 2: Команда kill
Для применения команды kill потребуется знание PID (идентификатора процесса), поскольку именно так осуществляется применение аргументов. В статье ниже мы детально описали операцию просмотра списка процессов для получения различной информации. Обязательно ознакомьтесь с ней перед выполнением следующей инструкции.
Далее остается только запустить «Терминал» и задействовать упомянутую команду. Для начала изучите ее простой синтаксис: kill -сигнал pid_процесса . Теперь давайте рассмотрим пример «убийства».
- Откройте меню приложений и запустите «Терминал».
Введите простую команду ps aux | grep name для получения информации об указанном процессе, где name — имя желаемой программы.
В отобразившемся результате отыщите главный PID и запомните его.
Введите kill PID для завершения процесса через сигнал SIGTERM. Вместо PID вам нужно написать определенный ранее номер идентификатора.
Теперь вы можете снова использовать ps aux | grep name , чтобы проверить, была ли завершена операция.
То же самое действие по «убийству» осуществляется и через другой аргумент путем ввода kill -TERM .
Если приведенные выше команды не принесли никакого результата, потребуется обозначить сигнал SIGKILL, вставив команду kill -KILL .
Учтите, что некоторые процессы запускаются от имени суперпользователя, соответственно, для их завершения требуются привилегии. Если при попытке ввода kill вы получаете информацию «Отказано в доступе», вводите перед основной командой sudo, чтобы получилось sudo kill .
Способ 3: Команда pkill
Следующая консольная утилита называется pkill и является модернизированной версией предыдущей команды. Здесь все реализовано точно по такому же образу, но вместо PID от пользователя требуется вводить название процесса.
- Для отправки сигнала SIGTERM используйте pkill + название процесса .
После вы можете убедиться, что операция была успешно завершена.
Задайте вручную тип сигнала, введя такую форму pkill -TERM ping , где -TERM — необходимый сигнал.
Используйте pgrep для определения того, что процесс больше не выполняется, если вы не хотите задействовать ps
Способ 4: Команда killall
В качестве последнего способа мы рассмотрим команду под названием killall. Ее функционирование и синтаксис выглядят точно так же, как у всех предыдущих утилит, поэтому останавливаться на этом мы не будем. Только уточним, что эта команда позволяет завершить все процессы с указанным названием разом и может быть использована в разных случаях.
Теперь вы знаете все о завершении процессов в Linux. Перед выполнением методов убедитесь, что принудительное «убийство» не приведет к системным сбоям. Если же ни один вариант не позволил полностью избавиться от процесса, попробуйте просто перезагрузить компьютер или удалить софт, связанный с этой опцией.
Помимо этой статьи, на сайте еще 12315 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Источник