U1 Слово Лѣтопись Имперія Вѣда NX ТЕ  

NX

       

Какъ найти и убить запущенные процессы в Linux


15 июл 2021 


Управленіе процессами — одно изъ важнѣйшихъ средствъ системнаго администрированія Linux, и оно включаетъ въ себя завершеніе процессовъ съ помощью команды kill.

Что такое процессъ въ Linux?

Процессомъ въ системѣ Linux называется запущенный экземпляръ приложенія или программы. Такъ же можно считать процессы задачами, выполняемыми въ операціонной системѣ.

Когда процессъ запущенъ, онъ продолжаетъ переходить изъ одного состоянія въ другое, и можетъ находиться въ одномъ изъ слѣдующихъ состояній:

  • Выполненіе: означаетъ, что процессъ либо выполняется, либо просто настроенъ на выполненіе.
  • Ожиданіе: означаетъ, что процессъ ожидаетъ событія или системнаго рессурса для выполненія задачи.

Въ Linux существуетъ два вида ожидающаго процесса: прерываемый и непрерываемый.

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

Ожидающій процессъ, можетъ находиться въ двухъ состояніяхъ:

  • Остановленный: означаетъ, что процессъ былъ остановленъ съ использованіемъ сигнала.
  • Зомби: означаетъ, что процессъ былъ внезапно остановленъ и мертвъ.

При уничтоженіи процессовъ используется команда kill для отправки именованнаго сигнала именованному процессу или группамъ процессовъ. Сигналомъ по умолчанію является сигналъ TERM.

Команда kill можетъ быть встроенной функціей оболочки или внѣшней, расположенной въ /bin/kill или /usr/bin/kill.

Как найти PID процесса

Въ Linux каждый процессъ въ системѣ имѣетъ PID (идентификаціонный номеръ процесса), который можно использовать для уничтоженія онаго.

PID любаго процесса можно найти, используя команду pidof слѣдующимъ образомъ:

pidof gedit
63039

Экземпляру приложенія можетъ принадлежать болѣе одного PID, напримѣръ:

pidof firefox
61498 61458 60948 60904 60772 59110 58364 58311 58235

Какъ убить процессы

Найдя PID процесса, давайте посмотримъ, какъ убить его. Напримѣръ, я хочу убить процессъ gedit, поэтому сдѣлаю это слѣдующимъ образомъ:

pidof gedit
63039
kill 63039

Чтобы убѣдиться, что процессъ былъ убитъ, нужно снова запустить команду pidof. И, конечно же, она ничего не должна показать, если процессъ убитъ.

pidof gedit

Такъ же можно отправить сигналъ процессу, используя имя сигнала

pidof gedit
63039
kill -SIGTERM 63039
pidof gedit 

или номеръ сигнала для уничтоженія процесса:

pidof gedit
kill -9 63039
pidof gedit

Здѣсь цифра 9 — номеръ сигнала SIGKILL.

Какъ убить сразу нѣсколько процессовъ

Чтобы убить болѣе одного процесса за одинъ разъ, нужно передать PID командѣ kill слѣдующимъ образомъ:

pidof firefox gedit
61498 61458 60948 60904 60772 59110 58364 58311 58235 63039
kill -9 61498 61458 60948 60904 60772 59110 58364 58311 58235 63039

Или, по другому:

kill -9 $(pidof firefox gedit)

Заключеніе

Въ Linux такъ же имѣется много другихъ способовъ уничтоженія процессовъ, кромѣ killpkill, killall, xkill.

☆☆☆


При перепечатке ссылка на unixone.ru обязательна.