Какво е команда за убийство?
Linux е напреднала и страхотна операционна система; обаче не е перфектно. Няколко приложения може да започнат да се държат небрежно и да станат нечувствителни или да започнат да консумират няколко системни ресурса.
Нечувствителните приложения не могат да бъдат рестартирани, тъй като действителният процес на кандидатстване никога не спира напълно. Единственото решение е или рестартиране на системата, или спиране на процеса на приложението.
Има различни помощни програми, които ни позволяват да прекратим грешни процеси заедно с убивам команда. Тази команда е най-широко използвана в Linux.
частично производно на латекс
в Linux , командата kill (разположена в /bin/kill) може да се дефинира като вградена команда.
Използва се за ръчно прекратяване на процесите. Поведението на командата kill е малко по-различно между черупките и /bin/kill самостоятелен изпълним файл.
Можем да приложим командата type за показване на всяко местоположение в нашата система, което съдържа kill:
$ type -a kill
Командата kill прехвърля сигнал към процес, който допълнително прекратява процеса. Когато потребителят не описва никакъв сигнал, който трябва да бъде прехвърлен с командата kill, тогава СРОК прехвърля се сигнал (по подразбиране), който ще прекрати процеса. Ако сигналът не е описан, тогава ще се използва по подразбиране - петнадесет ( -СРОК ).
Най-широко прилаганите сигнали са следните:
Можем да използваме командата kill заедно с -л опция за получаване на списък с всеки наличен сигнал:
$ kill -l
Тези сигнали могат да бъдат описани по три различни начина. Тези начини са изброени по-долу:
- По номер (напр. -6)
- Без префикс SIG (напр. -kill)
- С SIG префикс (напр. -SIGkill)
Командите по-долу са подобни една на друга:
- $ kill -SIGHUP PID_NUMBER
- $ убийство -HUP PID_NUMBER
- $ убийство -1 PID_NUMBER
PID, дадени на командата kill, може да бъде всеки от следните:
- Сигналът ще бъде прехвърлен към процеса заедно с идентификатор, подобен на PID, когато PID е по-голям от нула.
- Сигналът ще бъде прехвърлен към всеки процес в текущата група процеси, когато PID е еквивалентен на нула. Това означава, че сигналът ще бъде прехвърлен към всеки процес, свързан с GID на Shell, който изисква командата kill. Можем да приложим ps -efj команда за преглед на идентификаторите на групата процеси (GID).
- Сигналът ще бъде прехвърлен към всеки процес заедно с подобен UID като потребител, който иска командата, когато PID е еквивалентен на -1. Ако искащият потребител е root, тогава сигналът ще бъде прехвърлен към всеки процес, с изключение на процеса на убиване и стартиране.
- Сигналът ще бъде прехвърлен към всеки процес в групата процеси заедно с GID, подобен на абсолютната стойност на PID, когато PID е по-малък от -1.
Редовните потребители могат да прехвърлят сигнали към своите процеси. Той обаче не включва онези потребители, които са свързани с друг потребител. От друга страна, root потребителят може да прехвърли сигнала към процесите на другия потребител.
- PID от -1 е много уникален, защото показва всеки процес с изключение на init и kill, който е родителски процес на всеки процес в системата.
- Отрицателните стойности на PID се използват за указване на ID на групата процеси. Когато подадем идентификатор на група процеси, тогава всеки процес в тази група ще получи сигнала.
- За да покажем списъка с изпълнявани процеси, можем да използваме командата ps и тя ще ни покаже изпълняваните процеси заедно с PID номера. Трябва да дадем PID, за да уточним кой процес трябва да получи сигнала на командата kill.
Синтаксис:
$ps
пс до: Тази команда се използва за показване на всеки работещ процес заедно с техните PID и други подробности. В случай, че не знаем идентификатора на процеса, можем да използваме тази команда.
Опции на командата kill
1. убивам -l: Тази опция се използва за показване на всеки съществуващ сигнал, можем да приложим следната опция на командата:
Синтаксис:
$kill -l
2. убийте pid: Тази опция се използва за показване как да се приложи PID заедно с командата kill.
Синтаксис:
$kill pid
3. убий -L: Командата kill -L може да се използва за изброяване на съществуващите сигнали във формат на таблицата.
Синтаксис:
/bin/kill -L
4. Преведете номера на сигнала: Можем лесно да преведем всеки номер на сигнал в име на сигнал, като използваме следната команда:
/bin/kill --list=12