'\" t .\" Title: kill .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.23 .\" Date: 2025-03-29 .\" Manual: Команди користувача .\" Source: util-linux 2.41 .\" Language: English .\" .TH "KILL" "1" "2025-03-29" "util\-linux 2.41" "Команди користувача" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "НАЗВА" kill \- переривання процесу .SH "КОРОТКИЙ ОПИС" .sp \fBkill\fP [\fB\-\fP\fIсигнал\fP|\fB\-s\fP \fIсигнал\fP|\fB\-p\fP] [\fB\-q\fP \fIзначення\fP] [\fB\-a\fP] [\fB\-\-timeout\fP \fIмілісекунди\fP \fIсигнал\fP] [\fB\-\-\fP] \fIpid\fP|\fIназва\fP... .sp \fBkill\fP \fB\-l\fP [\fInumber\fP|\f(CR0x\fP\fIsigmask\fP] | \fB\-L\fP .sp \fBkill\fP \fB\-d\fP \fIpid\fP .SH "ОПИС" .sp Команда \fBkill\fP надсилає вказаний \fIсигнал\fP вказаним процесам або групам процесів. .sp Якщо сигнал не вказано, буде надіслано сигнал TERM. Типовою дією у відповідь на цей сигнал є переривання роботи процесу. Цьому сигналу слід віддавати перевагу перед сигналом KILL (номер 9), оскільки процес може встановлювати обробник сигналу TERM з метою виконати заходи із чищення перед перериванням роботи у штатному режимі. Якщо роботу процесу не буде перервано після надсилання сигналу TERM, можна скористатися сигналом KILL, але слід зважати на те, що останній сигнал не може бути перехоплено, а отже, його використання не дасть цільовому процесу можливості виконати будь\-яке чищення перед перериванням роботи. .sp У більшості сучасних командних оболонок є вбудована команда \fBkill\fP, користування якою є дуже подібним до команди, яку описано на цій сторінці підручника. Параметри \fB\-\-all\fP, \fB\-\-pid\fP та \fB\-\-queue\fP та можливість вказувати процесів за назвою команди є локальними розширеннями можливостей. .sp Якщо значенням аргументу \fIсигнал\fP є 0, ніякого сигналу не буде надіслано, але буде виконано перевірку на помилки. .SH "АРГУМЕНТИ" .sp Список процесів, яким буде надіслано сигнали, може бути сумішшю назв і PID. .sp \fIpid\fP .RS 4 Кожен запис \fIpid\fP можна вказати в один з таких способів: .sp \fIn\fP .RS 4 де \fIn\fP є більшим за 0. Сигнал буде надіслано процесу із PID \fIn\fP. .RE .sp \fB0\fP .RS 4 Сигнал буде надіслано усім процесам поточної групи процесів. .RE .sp \fB\-1\fP .RS 4 Сигнал буде надіслано усім процесам із PID, який перевищує 1. .RE .sp \fB\-\fP\fIn\fP .RS 4 де \fIn\fP є більшим за 1. Сигнал буде надіслано усім процесам у групі процесів \fIn\fP. Якщо задано аргумент у формі «\-n», і його призначено для позначення групи процесів, або спочатку має бути вказано сигнал, або перед аргументом має бути вказано параметр «\-\-». Якщо цього не зроблено, аргумент вважатиметься сигналом, який слід надіслати. .RE .RE .sp _назва> .RS 4 Сигнал буде надіслано усім процесам, які викликано з використанням цієї _назви>. .RE .SH "ПАРАМЕТРИ" .sp \fB\-s\fP, \fB\-\-signal\fP _сигнал> .RS 4 Сигнал, який слід надіслати. Можна вказати у формі назви або числа. .RE .sp \fB\-l\fP, \fB\-\-list\fP [\fIчисло\fP|\f(CR0x\fP\fIмаска\-сигналу\fP] .RS 4 Вивести список назв сигналів, перетворити заданий номер сигналу на назву або перетворити задану маску сигналу на назви. Список сигналів наведено у файлі \fI/usr/include/linux/signal.h\fP. .sp .if n .RS 4 .nf .fam C $ ps s $$ UID\& PID\& PENDING\& BLOCKED\& IGNORED\& CAUGHT STAT TTY\& TIME COMMAND 1000 1608069 0000000000000000 0000000000000002 0000000000384000 0000000008013003 Ss\& pts/44\& 0:02 zsh $ kill \-l 0x0000000000384000 TERM TSTP TTIN TTOU .fam .fi .if n .RE .RE .sp \fB\-L\fP, \fB\-\-table\fP .RS 4 Подібний до \fB\-l\fP, але призводить до виведення назв сигналів і відповідних їм чисел. .RE .sp \fB\-a\fP, \fB\-\-all\fP .RS 4 не обмежувати перетворення назв на pid процесами з тим самим UID, що і поточний процес. .RE .sp \fB\-p\fP, \fB\-\-pid\fP .RS 4 Вивести лише ідентифікатори іменованих процесів (PID), не надсилати жодних сигналів. .RE .sp \fB\-r\fP, \fB\-\-require\-handler\fP .RS 4 Не надсилати сигнал, якого його не захоплено у просторі користувача процесу з сигналом. .RE .sp \fB\-\-verbose\fP .RS 4 Вивести PID, яким буде надіслано сигнали \fBkill\fP разом із сигналами. .RE .sp \fB\-q\fP, \fB\-\-queue\fP _значення> .RS 4 Надіслати сигнал за допомогою \fBsigqueue\fP(3), а не \fBkill\fP(2). Аргументом \fIзначення\fP є ціле число, яке буде надіслано разом із сигналом. Якщо процес\-отримувач встановив обробник для цього сигналу за допомогою прапорця \fBSA_SIGINFO\fP \fBsigaction\fP(2), процес може отримати ці дані за допомогою поля \fIsi_sigval\fP структури \fIsiginfo_t\fP. .RE .sp \fB\-\-timeout\fP _мілісекунди сигнал> .RS 4 Надіслати процесу сигнал, який визначено у звичний спосіб, а потім додатковий сигнал після вказаної затримки. Використання параметра \fB\-\-timeout\fP призведе до того, що \fBkill\fP очікуватиме протягом періоду, який визначено аргументом \fIмілісекунди\fP, перш ніж надсилати наступний \fIсигнал\fP процесу. Цю можливість реалізовано з використанням можливості ядра Linux з використання дескрипторів файлів PID з метою гарантувати те, що наступний сигнал буде надіслано тому самому процесу або не буде надіслано взагалі, якщо процесу більше не існує. .sp Зауважте, що операційна система може повторно використовувати PID, і реалізація еквівалентної можливості у командній оболонці за допомогою \fBkill\fP і \fBsleep\fP може призвести до конкуренції, за якої наступний сигнал може бути надіслано іншому процесу, який повторно використав вже знищений PID. .sp Параметр \fB\-\-timeout\fP може бути вказано декілька разів: сигнали буде надіслано послідовно із вказаними періодами очікування. Параметр \fB\-\-timeout\fP може бути поєднано із параметром \fB\-\-queue\fP. .sp Наприклад, вказана нижче команда надсилає сигнали \fBQUIT\fP, \fBTERM\fP та \fBKILL\fP послідовно і вмикає очікування у 1000 мілісекунд між надсиланнями сигналів: .sp .if n .RS 4 .nf .fam C kill \-\-verbose \-\-timeout 1000 TERM \-\-timeout 1000 KILL \(rs \-\-signal QUIT 12345 .fam .fi .if n .RE .RE .sp \fB\-d\fP, \fB\-\-show\-process\-state\fP \fIpid\fP .RS 4 Decode signal related fields in /proc/\fIpid\fP/status. .sp .if n .RS 4 .nf .fam C $ kill \-d $$ Blocked: INT Ignored: TERM TSTP TTIN TTOU Caught: HUP INT PIPE ALRM CHLD WINCH .fam .fi .if n .RE .RE .SH "СТАН ВИХОДУ" .sp У \fBkill\fP передбачено такі значення стану виходу: .sp \fB0\fP .RS 4 успіх .RE .sp \fB1\fP .RS 4 помилка .RE .sp \fB64\fP .RS 4 частковий успіх (якщо вказано декілька процесів) .RE .SH "ЗАУВАЖЕННЯ" .sp Хоча як аргумент \fBkill\fP можна вказати TID (ідентифікатор потоку обробки, див. \fBgettid\fP(2)) одного з потоків обробки у багатопотоковому процесі, сигнал все одно буде надіслано процесу (тобто усій групі потоків обробки). Іншими словами, не можна надіслати сигнал явно вказаному потоку обробки у багатопотоковому процесі. Сигнал буде отримано довільно вибраним потоком, який не блокує сигнал, у процесі призначення. Докладніший опис наведено на сторінці підручника \fBsignal\fP(7) та в описі \fBCLONE_THREAD\fP на сторінці підручника \fBclone\fP(2). .sp У різних командних оболонках реалізовано вбудовані команди \fBkill\fP, які мають вищий пріоритет за виконуваний файл \fBkill\fP(1), який описано у цьому підручнику. Найпростішим способом забезпечення виконання саме команди, яку описано на цій сторінці, є використання повного шляху для виклику команди. Приклад: \fB/bin/kill \-\-version\fP .SH "АВТОРИ" .sp .MTO "svalente\(atmit.edu" "Salvatore Valente" "," .MTO "kzak\(atredhat.com" "Karel Zak" "" .sp Початкову версію було запозичено з BSD 4.4. .SH "ТАКОЖ ПЕРЕГЛЯНЬТЕ" .sp \fBbash\fP(1), \fBtcsh\fP(1), \fBsigaction\fP(2), \fBkill\fP(2), \fBsigqueue\fP(3), \fBsignal\fP(7) \fBproc(5)\fP \fBproc_pid_status(5)\fP .SH "ЯК НАДІСЛАТИ ЗВІТ ПРО ВАДИ" .sp Для звітування щодо вад скористайтеся \c .URL "https://github.com/util\-linux/util\-linux/issues" "системою стеження за вадами" "" .SH "ДОСТУП ДО ПРОГРАМИ" .sp Програма \fBkill\fP є частиною пакунка util\-linux, який можна отримати з \c .URL "https://www.kernel.org/pub/linux/utils/util\-linux/" "архіву ядра Linux" "."