KILL(1)

НАЗИВ
kill - окончава процес

УВОД

kill [-сигнал|-s сигнал|-p] [-q вредност] [-a] [--timeout милисекунде сигнал] [--] пид|назив...

kill -l [број|0xсигмаска] | -L

kill -d пид

ОПИС

Наредба kill шаље наведени сигнал наведним процесима или групама процеса.

Ако није наведен никакав сигнал, TERM сигнал се шаље. Основна радња за овај сигнал је да оконча процес. Овај сигнал треба да се користи у предности над KILL сигналом (број 9), како процес може да инсталира руковаоца за TERM сигнал да би обавио кораке чишћења пре окончавања на старији начин. Ако се процес не оконча након што је TERM сигнал послат, тада се сигнал KILL може користити; пазите да каснији сигнал не може бити ухваћен, и стога не даје циљном процесу могућност да обави никакво чишћење пре окончавања.

Већина савремених шкољки има уграђену наредбу kill, са коришћењем врло сличном оном наредби описаној овде. Опције --all, --pid, и --queue, и могућност за навођење процеса по називу наредбе, јесу локална проширења.

Ако је сигнал 0, тада се никакав актуелни сигнал не шаље, али се провера грешке још увек обавља.

АРГУМЕНТИ

Списак процеса који ће бити сигнализирани може бити мешавина назива и ПИД-ова.

пид
    Сваки пид се може изразити на један од следећих начина:

    n
        где је n веће од 0. Процес са ПИД-ом n се сигнализира.

    0
        Сви процеси у тренутној групи процеса се сигнализирају.

    -1
        Сви процеси са ПИД-ом већим о д1 се сигнализирају.

    -n
        где је n веће од 1. Сви процеси у процесној групи n су сигнализовани. Када је дат аргумент у облику „-n“, и замишљен је да означи процесну групу, или сигнал мора бити наведен први, или испред аргумента мора да претходи опција „--“, у супротном биће узет као сигнал за слање.

назив
    Сви процеси призвани коришћењем овог назива биће сигнализирани.

ОПЦИЈЕ

-s, --signal сигнал
    Сигнал за слање. Може бити дат као назив или број.

-l, --list [број|„0x“сигмаска]
    Исписује списак назива сигнала, претвара дати број сигнала у назив или претвара дату наску сигнала у називе. Сигнали се могу наћи у /usr/include/linux/signal.h.

        $ ps s $$
          УИД     ПИД          ЧЕКА          БЛОКИРАНО          ЗАНЕМАРЕНО           УХВАЋЕН СТАЊЕ КОНЗОЛА        НАРЕДБА ВРЕМЕНА
         1000 1608069 0000000000000000 0000000000000002 0000000000384000 0000000008013003 Ss   pts/44     0:02 zsh
        $ kill -l 0x0000000000384000
        TERM
        TSTP
        TTIN
        TTOU

-L, --table
    Слично као -l, али ће исписати називе сигнала и њихове одговарајуће бројеве.

-a, --all
    Не ограничава претварање назив-наредбе-у-ПИД на процесе са истим УИД-ом као садашњим процесом.

-p, --pid
    Само исписује ИД процеса (ПИД) именованих процеса, не шаље никакве сигнале.

-r, --require-handler
    Не шаље сигнал ако није ухваћен у корисничком простору сигнализираним процесом.

--verbose
    Исписује ПИД(ове) који ће бити сигнализирани са kill уз сигнал.

-q, --queue вредност
    Шаље сигнал користећи sigqueue(3) уместо kill(2). Аргумент вредност је цео број који се шаље са сигналом. Ако је процес примања инсталирао руковаоца за овај сигнал користећи опцију SA_SIGINFO за sigaction(2), тада може да прибави ове податке путем поља si_sigval структуре siginfo_t.

--timeout милисекунде сигнал
    Шаље процесу сигнал дефинисан на уобичајени начин, за којим следи додатни сигнал након наведеног застоја. Опција --timeout доводи до тога да kill чека на период дефинисан у милисекундама пре слања сигнала праћења процесу. Ова функција је примењена коришћењем функције описника ПИД датотеке Линукс кернела да би осигурао да је сигнал праћења послат истом процесу или није послат ако процес више не постоји.

    Знајте да оперативни систем може поново да искористи ПИД-ове и да би примена еквивалентне функције у шкољци коришћењем kill-а и sleep-а била подложна утркивањима у којима би сигнал праћења могао бити послат другом процесу који је користио рециклирани ПИД.

    Опција --timeout се може навести више пута: сигнали се шаљу у секвенцама са наведеним истецима времена. Опција --timeout се може комбиновати са опцијом --queue.

    На пример, следећа наредба шаље сигнале QUIT, TERM и KILL у секвенцама и чека 1000 милисекунди између слања сигнала:

        kill --verbose --timeout 1000 ТЕРМ --timeout 1000 УБИЈ \
                --signal ИЗАЂИ 12345

-d, --show-process-state пид
    Дешифрује поља односна сигналу у „/proc/pid/status“.

        $ kill -d $$
        Блокирано: INT
        Занемарено: TERM TSTP TTIN TTOU
        Ухваћено: HUP INT PIPE ALRM CHLD WINCH

ИЗЛАЗНО СТАЊЕ

kill има следеће вредности излазног стања:

0
    успешно

1
    неуспех

64
    делимичан успех (када је наведено више од једног процеса)

БЕЛЕШКЕ

Иако је могуће навести ТИД (ИД нити, видите gettid(2)) једне од нити у вишенитном процесу као аргумент kill-а, сигнал се ипак усмерава на процес (тј. целој групи нити). Другим речима, није могуће послати сигнал изричито одабраној нити у вишенитном процесу. Сигнал ће бити испоручен произвољно одабраној нити у циљном процесу која не блокира сигнал. За више детаља, видите signal(7) и опис CLONE_THREAD-а у clone(2).

Различите шкољке пружају уграђену наредбу kill која је пожељнија у односу на извршну датотеку kill(1) описану у овом приручнику. Најлакши начин да се уверите да неко извршава наредбу описану на овој страници је да користите пуну путању приликом позивања наредбе, на пример: /bin/kill --version

АУТОРИ

Изворно издање је узето из BSD-а 4.4.

ПОГЛЕДАЈТЕ ТАКОЂЕ

bash(1), tcsh(1), sigaction(2), kill(2), sigqueue(3), signal(7) proc(5) proc_pid_status(5)

ПРИЈАВЉИВАЊЕ ГРЕШАКА

За пријављивање грешака, користите „https://github.com/util-linux/util-linux/issues[issue tracker]“.

ДОСТУПНОСТ

Наредба kill је део „util-linux“ пакета који се може преузети са