Поиск по сайту:

Учебное пособие по команде Linux pkill для начинающих (5 примеров)


На этой странице

  1. Команда pkill в Linux
  2. Q1. Как использовать команду pkill?
  3. Вопрос 2. Как заставить pkill отправлять другой сигнал?
  4. Вопрос 3. Как убить процессы на основе полной командной строки?
  5. Q4. Как сделать pkill нечувствительным к регистру?
  6. В5. Как заставить системный журнал перечитать свой файл конфигурации с помощью pkill?
  7. Заключение

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

Да, есть инструмент pkill, который позволяет это сделать. В этой статье мы обсудим основы этой команды, используя несколько простых для понимания примеров. Но прежде чем мы это сделаем, стоит упомянуть, что все приведенные здесь примеры были протестированы на компьютере с Ubuntu 18.04 LTS и Debian 10.

Linux-команда pkill

Команда pkill в Linux — это, по сути, более простой способ уничтожения процессов. Ниже приведен его синтаксис:

pkill [options] pattern

А вот что говорит man-страница об этом инструменте:

pkill - signal processes based on name and other attributes

Ниже приведены несколько примеров в стиле вопросов и ответов, которые должны дать вам лучшее представление о том, как работает команда pkill.

Q1. Как использовать команду pkill?

Основное использование довольно простое — все, что вам нужно сделать, это выполнить pkill с именем процесса в качестве входных данных.

Например, если вы пытаетесь убить процесс gedit, вы можете сделать это с помощью pkill следующим образом:

pkill gedit

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

Q2. Как заставить pkill отправлять другой сигнал?

Как уже упоминалось в начале этой статьи, команда pkill фактически отправляет сигнал процессу. По умолчанию отправляется сигнал SIGTERM, но если вы хотите, вы можете изменить сигнал, используя параметр командной строки --signal.

Например:

pkill --signal SIGKILL gedit

Q3. Как убить процессы на основе полной командной строки?

По умолчанию входное имя (шаблон) сопоставляется с именем процесса. Однако, если вы хотите, вы можете сделать так, чтобы pkill соответствовал полной командной строке. Это можно сделать с помощью параметра командной строки -f.

Например, предположим, что в моей системе запущены две команды ping. Ниже приведен отрывок из вывода команды ps:

...
root 19253 0.0 0.1 9180 2916 pts/1 S+ 19:24 0:00 ping google.com
root 19331 0.0 0.1 9180 2912 pts/2 S+ 19:25 0:00 ping linux-console.net
...

Теперь предположим, что требуется только убить команду ping google.com с помощью pkill.

Если вы используете pkill следующим образом:

pkill ping

тогда обе команды будут убиты. Поэтому, чтобы избежать этого, мы можем использовать параметр командной строки -f. Вот как это можно использовать:

pkill -f "ping google.com"

Я выполнил команду в первом окне терминала:

Результат во втором окне терминала, где выполнялся процесс ping:

Поэтому, когда была выполнена вышеупомянутая команда, была уничтожена только команда, указанная в качестве ввода.

Q4. Как сделать pkill нечувствительным к регистру?

По умолчанию команда pkill чувствительна к регистру, то есть она обрабатывает имена в верхнем и нижнем регистре по-разному. Однако, если вы хотите, вы можете сделать pkill нечувствительным к регистру, что вы можете сделать с помощью параметра командной строки -i.

pkill -i [process-name]

Q5. Как заставить системный журнал перечитать свой файл конфигурации с помощью pkill?

Для этого вы можете использовать команду pkill следующим образом:

pkill -HUP syslogd

Заключение

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