table of contents
KILL(1) | Команди користувача | KILL(1) |
НАЗВА¶
kill — переривання процесу
КОРОТКИЙ ОПИС¶
kill [-signal|-s сигнал|-p] [-q значення] [-a] [--timeout мілісекунди сигнал] [--] pid|назва...
kill -l [число] | -L
ОПИС¶
Команда kill надсилає вказаний сигнал вказаним процесам або групам процесів.
Якщо сигнал не вказано, буде надіслано сигнал TERM. Типовою дією у відповідь на цей сигнал є переривання роботи процесу. Цьому сигналу слід віддавати перевагу перед сигналом KILL (номер 9), оскільки процес може встановлювати обробник сигналу TERM з метою виконати заходи із чищення перед перериванням роботи у штатному режимі. Якщо роботу процесу не буде перервано після надсилання сигналу TERM, можна скористатися сигналом KILL, але слід зважати на те, що останній сигнал не може бути перехоплено, а отже, його використання не дасть цільовому процесу можливості виконати будь-яке чищення перед перериванням роботи.
У більшості сучасних командних оболонок є вбудована команда kill, користування якою є дуже подібним до команди, яку описано на цій сторінці підручника. Параметри --all, --pid та --queue та можливість вказувати процесів за назвою команди є локальними розширеннями можливостей.
Якщо значенням аргументу сигнал є 0, ніякого сигналу не буде надіслано, але буде виконано перевірку на помилки.
АРГУМЕНТИ¶
Список процесів, яким буде надіслано сигнали, може бути сумішшю назв і PID.
pid
n
0
-1
-n
назва
ПАРАМЕТРИ¶
-s, --signal сигнал
-l, --list [число]
-L, --table
-a, --all
-p, --pid
--verbose
-q, --queue значення
--timeout мілісекунди сигнал
Зауважте, що операційна система може повторно використовувати PID, і реалізація еквівалентної можливості у командній оболонці за допомогою kill і sleep може призвести до конкуренції, за якої наступний сигнал може бути надіслано іншому процесу, який повторно використав вже знищений PID.
Параметр --timeout може бути вказано декілька разів: сигнали буде надіслано послідовно із вказаними періодами очікування. Параметр --timeout може бути поєднано із параметром --queue.
Наприклад, вказана нижче команда надсилає сигнали QUIT, TERM та KILL послідовно і вмикає очікування у 1000 мілісекунд між надсиланнями сигналів:
kill --verbose --timeout 1000 TERM --timeout 1000 KILL \
--signal QUIT 12345
СТАН ВИХОДУ¶
У kill передбачено такі значення стану виходу:
0
1
64
ПРИМІТКИ¶
Хоча як аргумент kill можна вказати TID (ідентифікатор потоку обробки, див. gettid(2)) одного з потоків обробки у багатопотоковому процесі, сигнал все одно буде надіслано процесу (тобто усій групі потоків обробки). Іншими словами, не можна надіслати сигнал явно вказаному потоку обробки у багатопотоковому процесі. Сигнал буде отримано довільно вибраним потоком, який не блокує сигнал, у процесі призначення. Докладніший опис наведено на сторінці підручника signal(7) та в описі CLONE_THREAD на сторінці підручника clone(2).
У різних командних оболонках реалізовано вбудовані команди kill, які мають вищий пріоритет за виконуваний файл kill(1), який описано у цьому підручнику. Найпростішим способом забезпечення виконання саме команди, яку описано на цій сторінці, є використання повного шляху для виклику команди. Приклад: /bin/kill --version
АВТОРИ¶
Salvatore Valente <svalente@mit.edu>, Karel Zak <kzak@redhat.com>
Початкову версію було запозичено з BSD 4.4.
ДИВ. ТАКОЖ¶
bash(1), tcsh(1), sigaction(2), kill(2), sigqueue(3), signal(7)
ЗВІТИ ПРО ВАДИ¶
Для звітування про вади використовуйте систему стеження помилками на <https://github.com/karelzak/util-linux/issues>.
ДОСТУПНІСТЬ¶
kill є частиною пакунка util-linux, який можна отримати з Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.
ПЕРЕКЛАД¶
Український переклад цієї сторінки посібника виконано Yuri Chornoivan <yurchor@ukr.net>
Цей переклад є безкоштовною документацією; будь ласка, ознайомтеся з умовами GNU General Public License Version 3. НЕ НАДАЄТЬСЯ ЖОДНИХ ГАРАНТІЙ.
Якщо ви знайшли помилки у перекладі цієї сторінки підручника, будь ласка, надішліть електронний лист до списку листування перекладачів: trans-uk@lists.fedoraproject.org.
14 лютого 2022 року | util-linux 2.37.4 |