Как сделать команду килл
В операционных системах Linux есть команда Kill, прерывающая процесс. Она позволяет серверу продолжать работу после серьезных изменений и обновлений без необходимости перезагрузки. Это одно из важнейших преимуществ Linux и одна из причин того, почему она установлена на 90% серверов в мире. Команда kill отправляет процессу специальный сигнал. Ее можно запустить различными способами, непосредственно из командной строки или из скрипта.
Синтаксис
Использование команды kill из /usr/bin предоставляет дополнительную возможность прервать процесс по его имени при помощи pkill. Стандартный синтаксис команды kill следующий:
Для команды kill существует около 60 сигналов, но основные значения следующие:
Имя сигнала | Номер сигнала | Действие |
SIGHUP | 1 | Отключить |
SIGKILL | 9 | “Убить” |
SIGTERM | 15 | Прервать |
SIGTERM используется по умолчанию. Это самый безопасный способ прерывания процесса, когда приложению отправляется запрос, который может быть обработан или проигнорирован. SIGHUP — менее безопасный способ. SIGKILL — наименее безопасный вариант, прерывание процесса без сохранения, этот сигнал не может быть проигнорирован или перехвачен.
Идентификаторы процессов
Чтобы прервать (“убить”) процесс, нам нужно знать его идентификатор (Process ID или PID). Он генерируется автоматически при запуске каждой программы и есть у каждого процесса в Linux. Первый процесс, запускаемый при загрузке Linux — init, поэтому в большинстве случаев ему присваивается идентификатор ‘1’.
Init — системный процесс, его нельзя прервать таким образом. При получении сигнала он сам решает, позволить ли себя прервать, таким образом, команда kill становится просто запросом на отключение системы. Это сделано для того, чтобы исключить случайное прерывание системных процессов.
Увидеть все запущенные процессы и соответствующие им идентификаторы можно при помощи следующей команды:
Для получения идентификатора конкретного процесса можно воспользоваться командой pidof, которой в качестве аргумента задается его имя.
Также можно сделать фильтрацию с помощью grep
Примеры
Прежде чем перейти непосредственно к исполнению команды kill, следует сделать ряд важных замечаний:
- Пользователь может прервать любой свой процесс.
- Пользователь не может прервать процесс другого пользователя..
- Суперпользователь (root) может прервать системный процесс и процесс любого пользователя.
- Пользователь не может прервать системный процесс
Чтобы “убить” процесс с указанным PID, нужно выполнить следующую команду (приведен пример для процесса mysqld из предыдущего раздела):
Будет “убит” процесс с PID=1684, то есть mysqld.
Можно использовать не только номер, но и название сигнала/ Например, для запроса на прерывание, который можно обработать или проигнорировать:
Для прерывания нескольких процессов можно указать их идентификаторы через пробел:
Прерывание процесса по имени. Команда pkill
Для прерывания процесса по имени, а не идентификатору, используется команда pkill. Нужно внимательно вводить имя процесса, так как прерывание не того процесса может привести к сбоям:
Если у процесса слишком много экземпляров и дочерних процессов, существует команда killall, которой в качестве аргумента также задается имя процесса.
Для прерывания всех экземпляров mysqld с дочерними процессами воспользуйтесь следующей командой:
Далее можно проверить состояние процесса (запущен он или нет), например:
Команда killall
Еще одна полезная команда для завершения процессов, это команда killall. Эта команда также как и pkill может завершить все процессы имеющие одно имя
А также весьма полезна бывает когда нужно завершить все процессы какого нибудь пользователя.
Заключение
Мы разобрали, как прерывать процессы в Linux и рассмотрели несколько используемых для этого команд. Эти команды следует применять с большой осторожностью, так как неосмотрительное прерывание процесса может привести к системным сбоям или потере важных данных. Для более подробной информации, различных вариантов передаваемых сигналов и других опций можно обратиться к соответствующим man-страницам.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Пользователь, который создал сервер в Counter Strike Global Offensive, может управлять буквально всеми элементами игрового процесса. Пользователь, если имеет желание, может убить на локальном сервере как ботов, так и других игроков. Для того, чтобы воспользоваться такой возможностью, необходимо в настройках включить консоль и ввести одну из команд:
p, blockquote 2,0,0,1,0 --> p, blockquote 3,0,0,0,1 -->
Именно таким образом пользователь сможет убивать все живое на сервере, ничего сложного в это нет, достаточно просто скопировать необходимую команду и вставить в консоль находясь (команда аим кс го) на локальном сервере Counter Strike Global Offensive.
Задачи в 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. Написание технических заданий и инструкций — одна из её главных обязанностей. Её хобби — узнавать что-то новое и создавать интересные и полезные статьи о современных технологиях, веб-разработке, языках программирования и многом другом.
Переходим на Ubuntu
4 способа завершить процесс в Ubuntu — kill, killall, pkill, xkill
Обычно для завершения процесса используется команда kill. Как правило, если известен идентификатор процесса (PID), нужно выполнить команду kill -СИГНАЛ PID .
Однако, существует множество альтернативных способов завершить процесс, и сегодня мы рассмотрим четыре из них:
- Как завершить процесс по идентификатору процесса PID
- Как завершить процесс по названию приложения
- Как завершить процесс по части названия приложения
- Как завершить процесс, указав на окно процесса курсором
Команда kill — завершаем процесс по идентификатору
Каждая из приведенных ниже команд отправит сигнал на завершение указанному процессу. Сигнал можно указывать по имени или по коду. Описание сигналов можно найти в справочнике man или, например, в Википедии.
Например, для того, чтобы завершить процесс браузера Firefox, нужно сначала узнать его имя (подробнее о команде grep):
А затем послать найденному процессу команду на завершение:
Команда kilall — завершаем процесс по имени
Вместо того, чтобы указывать процесс по идентификатору, вы можете указать имя процесса. Если под этим именем работает несколько процессов, все они будут завершены. Продолжая наш пример с браузером Firefox, для того, чтобы завершить все процессы этого приложения, выполните следующую команду:
Команда pkill — завершаем процесс по части имени
Можно завершить процесс не только указав его имя целиком, но и частично. Это быстрее, ведь вам не нужно не только узнавать идентификатор процесса, но и указывать название процесса целиком, например так:
Однако, пользуясь этой командой нужно учитывать, что указанному критерию может соответсвовать несколько процессов, и тогда все они будут завершены.
Кроме того, нужно помнить, что переданные команде символы должны встречаться в первых 15 символах названия процесса.
Команда xkill — завершаем клиент сервера X
Команда xkill — простейший способ завершить неправильно работающую команду. После запуска команды xkill вам будет предложено указать курсором на окно, которое будет закрыто:
Читайте также: