В ОС Linux каждый процесс обладает уникальным идентификатором, который называется Process ID или PID. При создании нового процесса ему автоматически присваивается PID.
▶️Значения PID
В зависимости от значения PID, сигнал будет направляться определенной группе процессов.
Как именно значение PID влияет на отправку сигнала:
«PID > 0» - Сигнал будет отправлен процессу, который имеет идентификатор, соответствующий введенному значению.
«PID = 0» - Все процессы, которые в данный момент входят в одну группу, получают одинаковый сигнал.
«PID = −1» - В этом случае сигнал будет отправлен всем пользовательским процессам (если команду вызывает root, то сигнал будет отправлен всем процессам, за исключением init и самого kill). Для этой цели используется уникальный идентификатор пользователя (UID).
«PID < −1» - Сигнал передается процессам, которые входят в группу с GID (идентификатор группы), и значение PID (идентификатор процесса) имеет абсолютное значение.
▶️Поиск PID
Чтобы успешно завершить определенный процесс, необходимо определить его номер.
ps - команда отображает список активных процессов с дополнительной информацией о каждом из них.grep - задача выполняется вместе с командой ps, которая занимается поиском по списку, полученному от ps.Извлечь все процессы:
ps axu
Если список процессов достаточно длинный, то найти PID конкретного процесса может быть затруднительно. В этом случае стоит воспользоваться командой:
ps axu | grep bash
Если процесс существует, то мы увидим подобный вывод:
root 447 0.0 0.4 7932 4708 tty1 S 11:26 0:00 -bash
root 477 0.0 0.0 6268 640 tty1 S+ 11:27 0:00 grep bash
Здесь важна первая строчка. Число после
username и будет являться PID.Доп.варианты поиска:
▫️ pgrep - просматривает активные процессы и выдает PID тех, чьи атрибуты удовлетворяют запросу.
pgrep firefox
▫️ pidof - команда, принимающая на вход название.
pidof gcalctool