Linux killall что это

Содержание
  1. Как завершить процесс в Linux. Команды kill, pkill,killall
  2. Синтаксис
  3. Примеры
  4. Прерывание процесса по имени. Команда pkill
  5. Команда killall
  6. Заключение
  7. Как убить процесс в Linux
  8. Сигналы отключения системы
  9. Завершение процессов с помощью команды kill
  10. Завершение процессов с помощью команды killall
  11. Завершение процессов с помощью команды pkill
  12. Выводы
  13. Как убить или прекратить процесс Linux: ультимативное руководство.
  14. Мастер управления неотзывчивыми процессами в Linux
  15. Различные методы убийства мертвого процесса Linux
  16. Завершить неотвечающий процесс из командной строки
  17. Узнайте информацию о PPID
  18. Способ 1: использование команды ps
  19. Способ 2: Использование команды pstree
  20. Способ 3: использование команды pgrep
  21. Способ 4: Использование команды pidof
  22. Способ 5: использование команды top
  23. Убить не отвечающий процесс Linux
  24. Способ 1: использование команды kill
  25. Способ 2: использование команды pkill
  26. Способ 3: использование команды killall
  27. Способ 4: использование удобных однострочников
  28. Способ 5: уничтожение нескольких процессов с помощью шелл-скриптов Linux
  29. Завершить неотвечающий процесс из графического интерфейса
  30. Способ 1: использование приложения xkill
  31. Способ 2. Использование приложения System Monitor в Ubuntu
  32. Послесловие

Как завершить процесс в Linux. Команды kill, pkill,killall

В операционных системах 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.

Можно использовать не только номер, но и название сигнала/ Например, для запроса на прерывание, который можно обработать или проигнорировать:

Аналогично, команда kill -SIGKILL PID эквивалентна команде # kill -9 PID

Для прерывания нескольких процессов можно указать их идентификаторы через пробел:

Прерывание процесса по имени. Команда pkill

Для прерывания процесса по имени, а не идентификатору, используется команда pkill. Нужно внимательно вводить имя процесса, так как прерывание не того процесса может привести к сбоям:

Если у процесса слишком много экземпляров и дочерних процессов, существует команда killall, которой в качестве аргумента также задается имя процесса.

Для прерывания всех экземпляров mysqld с дочерними процессами воспользуйтесь следующей командой:

Далее можно проверить состояние процесса (запущен он или нет), например:

Команда killall

Еще одна полезная команда для завершения процессов, это команда killall. Эта команда также как и pkill может завершить все процессы имеющие одно имя

А также весьма полезна бывает когда нужно завершить все процессы какого нибудь пользователя.

Заключение

Мы разобрали, как прерывать процессы в Linux и рассмотрели несколько используемых для этого команд. Эти команды следует применять с большой осторожностью, так как неосмотрительное прерывание процесса может привести к системным сбоям или потере важных данных. Для более подробной информации, различных вариантов передаваемых сигналов и других опций можно обратиться к соответствующим man-страницам.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Как убить процесс в Linux

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

Читайте также:  Windows поддержка сенсорный ввод

Что ж, в какой-то момент это случилось со всеми нами, не так ли? Решение состоит в том, чтобы прервать или убить процесс приложения. Но как?

К счастью, в Linux есть несколько утилит, которые позволяют убивать ошибочные процессы.

В этой статье мы покажем вам, как использовать команды kill , killall и pkill для завершения процесса в Linux.

Основное различие между этими инструментами заключается в том, что kill завершает процессы на основе идентификатора процесса (PID), а команды killall и pkill завершают запущенные процессы на основе их имен и других атрибутов.

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

Сигналы отключения системы

kill , killall и pkill отправляют заданный сигнал указанным процессам или группам процессов. Если сигнал не указан, каждый инструмент отправляет 15 ( TERM ).

Наиболее часто используемые сигналы:

  • 1 (-HUP): перезагрузить процесс.
  • 9 (-KILL): убить процесс.
  • 15 (-TERM): чтобы корректно остановить процесс.

Сигналы можно указать тремя разными способами:

  • используя число (например, -1)
  • с префиксом «SIG» (например, -SIGHUP)
  • без префикса «SIG» (например, -HUP).

Используйте параметр -l чтобы -l список всех доступных сигналов:

Описанные ниже шаги будут работать во всех дистрибутивах Linux.

Завершение процессов с помощью команды kill

Чтобы сначала завершить процесс с помощью команды kill , вам нужно найти PID процесса. Вы можете сделать это с помощью различных команд, таких как top , ps , pidof и pgrep .

Допустим, браузер Firefox перестал отвечать, и вам нужно убить процесс браузера. Чтобы узнать идентификатор процесса, используйте команду pidof :

Команда распечатает все процессы Firefox:

Как только вы узнаете, что Firefox обрабатывает PID, чтобы завершить их все, отправьте сигнал TERM :

Завершение процессов с помощью команды killall

Команда killall завершает работу всех программ, соответствующих указанному имени.

Используя тот же сценарий, что и раньше, вы можете убить процесс Firefox, набрав:

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

Например, чтобы завершить все процессы, запущенные от имени пользователя sara, вы должны выполнить следующую команду:

Завершение процессов с помощью команды pkill

pkill завершает процессы, соответствующие шаблону, указанному в командной строке:

Название процесса не обязательно должно быть точным.

С помощью pkill вы также можете отправить сигнал процессам, принадлежащим данному пользователю. Чтобы убить только процессы firefox, принадлежащие пользователю sara, вы должны ввести:

Выводы

Завершение неотвечающих программ с помощью команд kill , killall и pkill — простая задача. Вам нужно только знать имя процесса или PID.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

Как убить или прекратить процесс Linux: ультимативное руководство.

Многопроцессорные операционные системы, такие как Linux и BSD, используют несколько методов для максимальной загрузки ЦП. Процесс — это просто исполняемая программа. Поскольку в любой момент времени в Linux запущено значительно больше одного процесса, управление ими чрезвычайно важно. Пользователи регулярно сталкиваются с такими проблемами, как ограничение ресурсов процессора при запуске слишком большого количества программ. Подобные ситуации возникают, когда процессор не справляется с растущим числом процессов. Хотя это не полностью зависит от мощности вашего процессора, работа с зависшими процессами или процессами зомби может быть довольно неприятной. Чтобы облегчить вам жизнь в таких случаях, мы описываем здесь некоторые стандартные способы уничтожения таких процессов.

Мастер управления неотзывчивыми процессами в Linux

Вы узнаете несколько способов как в Linux завершить процесс, который не подает признаков жизни. Если вы юзали Windows, скорее всего вам знаком шорткат Ctrl + Alt + Delete. Точно так же пользователи Mac имеют метод Command + Option + Escape для уничтожения замороженных процессов. Linux гораздо более универсален, чем его аналоги, и предлагает более одного метода для устранения мертвых процессов.

Различные методы убийства мертвого процесса Linux

В основном мы опишем два метода убийства зомби-процессов. Мы будем использовать терминал Linux для первого метода. Для этого сначала нужно идентифицировать id процесса, он же PID, от английского process identifier – идентификатор процесса. После успешного получения мы сможем использовать этот PID, посылая сигнал для уничтожения программы ориентируясь на номер-идентификатор.

Вы также узнаете, как обкашливать такие вопросики, используя графический интерфейс пользователя. Для этого мы собираемся использовать приложение «Системный монитор», доступное в Ubuntu. Хотя это приложение GNOME, аналогичные инструменты доступны и для других сред Linux.

Завершить неотвечающий процесс из командной строки

Существует несколько инструментов для завершения неотвечающего или зависшего процесса из командной строки, включая kill, pkill и killall. Эти команды работают, посылая определенные сигналы не отвечающим процессам. Вам понадобится PID, чтобы вы могли отправить им требуемый завершающий сигнал.

Читайте также:  Зависла установка windows 10 с флешки

PID или идентификатор процесса — это уникальный номер, который идентифицирует процесс. Эти номера генерируются ядром Linux непосредственно во время выполнения процессов, и диспетчер операционной системы управляет их процессорной активностью. Поэтому, когда вы вызываете приложение, ядро ​​сначала запускает необходимые процессы и присваивает им эти уникальные значения PID. С процессом может быть связано несколько PID. Более того, у каждого процесса есть один родительский процесс с уникальным PPID (идентификатор родительского процесса).

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

Узнайте информацию о PPID

Вы можете узнать PPID процесса, используя несколько команд управления процессами в Linux, таких как pidof, pstree и pgrep. Давайте рассмотрим их одну за другой и посмотрим, как получить PID процесса Linux.

Способ 1: использование команды ps

Команда ps в Linux отображает все запущенные процессы вместе с другой информацией о процессах, такой как PID, в терминале. Мы можем использовать эту команду для вывода списка всех процессов, а затем отфильтровать определенный процесс с помощью команды grep в Linux. Она должна показать нам номер идентификатора процесса, который нам и требуется.

Давайте подробнее поговорим о том, что происходит на демонстрации выше. Во-первых, мы запустили в фоновом режиме текстовый редактор Nano. Затем мы использовали команду ps вместе с командой grep, чтобы узнать PPID этого редактора. Вывод может содержать несколько идентификаторов процессов, но нас интересует только первый, поскольку это наш PPID. Мы также можем использовать команду Linux awk, чтобы узнать эту информацию, как показано ниже.

Эта команда более гибкая, так как она отфильтрует всю несущественную информацию, и покажет только номер PPID, который мы ищем.

Способ 2: Использование команды pstree

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

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

Способ 3: использование команды pgrep

Команда pgrep является одной из самых простых команд управления процессами в Linux. Он проверяет список всех запущенных процессов и выводит PPID процесса. Она работает путем сопоставления регулярных выражений и очень хорошо подходит для написания шелл-скриптов Linux.

Мы породили nano-процесс аналогично предыдущим примерам. Затем мы получили его PPID с помощью команды pgrep. Как только мы получим это значение, мы сможем выполнить задачу уничтожения мертвого процесса максимально легко.

Способ 4: Использование команды pidof

Команда pidof — это еще один простой, но полезный способ определения PPID процесса Linux. Он отображает как PPID, так и все другие PID, связанные с процессом. Ознакомьтесь с приведенной ниже демонстрацией, чтобы увидеть, как использовать ее на практике.

При использовании команды pidof для проверки запущенных процессов в Linux вы часто будете видеть несколько PID. Обычно в таких случаях первый или последний номер — это PPID, в зависимости от того, находятся они в порядке возрастания или в порядке убывания. Вы можете использовать опцию -s pidof, чтобы избежать этого. Так будет отображено только значение PPID.

Способ 5: использование команды top

Команда top обеспечивает представление в реальном времени всех запущенных процессов в Unix-подобных операционных системах. Вы можете использовать её, чтобы отобразить список задач Linux в вашем терминале и узнать информацию о PID определенного процесса.

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

Поскольку top обеспечивает вывод в реальном времени вместо выгрузки статических данных на экран, мы использовали опцию -n1 и -b для получения статического вывода. Затем вы можете получить информацию о PPID с помощью команды grep или awk.

Убить не отвечающий процесс Linux

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

Способ 1: использование команды kill

Простая и надежная как лом, команда kill, благодаря этим своим свойствам, широко используется администраторами Linux. Ей требуется только PID процесса и сигнал. Ядро убивает / останавливает выполнение процесса на основе этого сигнала. Вы можете использовать следующую команду, чтобы просмотреть все доступные сигналы для команды kill.

Как видите, kill предлагает 64 различных сигнала. Однако в этом руководстве мы обсудим только два из них. Это сигнал 9 (SIGKILL) и сигнал 15 (SIGTERM). SIGTERM или сигнал 15 — это безопасный метод уничтожения не отвечающего процесса. SIGKILL или сигнал 9, с другой стороны, принудительно убивает процесс Linux.

Читайте также:  Экран блокировки размыт windows 10

Вышеприведенные команды эквивалентны, и они принудительно завершат процесс с PID 8631. Это PPID процесса «nano» в моей системе. Замените его на PID не отвечающего процесса в вашей системе.

Вышеприведенные команды также эквивалентны и будут корректно завершать процесс. Вот почему может пройти некоторое время, прежде чем процесс будет остановлен. Более того, вам может понадобиться добавить sudo перед командой kill, если процесс принадлежит другому пользователю.

Способ 2: использование команды pkill

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

Вы можете использовать любую из перечисленных выше команд pkill для уничтожения зомби-процесса в Linux. Также команда pkill позволяет вам отправлять определенные завершающие сигналы.

Способ 3: использование команды killall

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

В первом примере показано базовое использование команды killall в Linux. Вторая команда сообщит, успешно ли выполнено задание на уничтожение, а третья команда запросит подтверждение у пользователя, прежде чем убить процесс. По умолчанию killall использует сигнал SIGTERM для процессов уничтожения. Однако вы можете указать сигнал вручную, как показано в последнем примере.

Способ 4: использование удобных однострочников

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

Теперь подробнее, в первом примере мы использовали интерполяцию оболочки для передачи PID процесса «nano» команде Linux kill. Второй пример использует несколько повседневных команд терминала и перенаправление ввода / вывода, чтобы завершить процесс. Вы сможете создавать свои собственные изящные однострочники, когда лучше освоитесь с терминалом Linux.

Способ 5: уничтожение нескольких процессов с помощью шелл-скриптов Linux

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

Теперь сохраните этот файл и добавьте разрешение на выполнение, введя команду ниже.

Теперь вы можете передать этому сценарию имена процессов, которые вы хотите завершить.

Просто замените аргументы именами не отвечающих процессов Linux в вашей системе.

Завершить неотвечающий процесс из графического интерфейса

Вы также можете завершить неотвечающий процесс из GUI или window X. Мы обсудим два способа сделать это в следующем разделе.

Способ 1: использование приложения xkill

Современные дистрибутивы Linux используют оконную систему X window для предоставления конечному пользователю элегантного графического интерфейса. Существует простой инструмент под названием xkill, который позволяет юзерам закрывать неотвечающее окно графического интерфейса. Это возможно, поскольку в Linux окно заголовка приложения отделено от самого приложения.

Просто зайдите в эмулятор терминала Linux и введите xkill. Он превратит ваш курсор мыши в кнопку X, которую можно использовать для уничтожения любого окна GUI.

Теперь все, что вам нужно сделать, это просто щелкнуть по панели окна не отвечающего приложения, и оно будет убито и мгновенно исчезнет.

Способ 2. Использование приложения System Monitor в Ubuntu

Большинство основных дистрибутивов Linux поставляются с какими-то инструментами мониторинга графического интерфейса, которые позволяют пользователям «графически» завершать зависший процесс Linux. Например, приложение System Monitor в Ubuntu позволит нам интуитивно прекратить не отвечающий процесс. Вы можете просто выбрать мертвый процесс из списка процессов и уничтожить его, щелкнув правой кнопкой мыши по процессу и выбрав опцию уничтожения.

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

Послесловие

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

Источник

Оцените статью