SIGKILL

З Вікіпедыі, свабоднай энцыклапедыі
SIGKILL
Апісанне: Сігнал спынення
Па змоўчванню: завяршэнне працэсу
коды SA_SIGINFO
(не мае спецыфічных кодаў)

У POSIX-сістэмах, SIGKILL — сігнал, які дасылаюць працэсу для яго неадкладнага завяршэння.

SIGKILL — цэлалікавая канстанта, якая вызначаецца ў загалоўкавым файле signal.h. Сімвальныя імёны сігналаў ужываюцца замест нумароў, бо ў розных рэалізацыях нумары сігналаў могуць адрознівацца.

На большасці платформ SIGKILL мае значэнне 9, што спарадзіла выраз «кіл-мінус-дзевяць» (англ.: kill-dash-nine), агучванне каманды тыпа «kill -9 1234» (скарочаны сінтаксіс, рэкамендаваны варыянт — «kill -s KILL 1234»)

Этымалогія[правіць | правіць зыходнік]

SIG — агульны прэфікс сігналаў, KILL — англ.: kill — забіць, ліквідаваць (англійскі камп'ютарны жаргон).

Ужыванне[правіць | правіць зыходнік]

Калі сігнал дасланы працэсу, SIGKILL выклікае яго неадкладнае завяршэнне. У адрозненні ад SIGTERM ці SIGINT гэты сігнал не можа быць перахоплены ці праігнараваны , а працэс, які атрымаў яго, не мае магчымасці выканаць якія-небудзь дзеянні перад сваім завяршэннем.

  • Зомбі-працэс нельга завершыць SIGKILL, таму што зомбі ўжо спынены і не можа прымаць сігналы. Зомбі чакае, што бацькоўскі працэс злічыць код завяршэння з дапамогай сістэмнага выкліку wait().
  • Працэсы ў стане блакіроўкі (напрыклад, пры чаканні ўвода/вывада) не змогуць завершыцца па SIGKILL, пакуль аперацыйная сістэма не верне іх у нармальны стан (пры наступленні чаканай падзеі ці памылкі).
  • Працэс init з'яўляецца асабістым выпадкам — ён не атрымоўвае ад аперацыйнай сістэмы сігналаў, якія ён не жадае апрацоўваць, і, адпаведна, можа ігнараваць SIGKILL.

Гумар[правіць | правіць зыходнік]