все Python 3osфункция
os.kill
os — сигналы и приоритет
Посылает сигнал процессу по PID.
Синтаксис
os.kill(...)
На Unix сигнал 0 ничего не посылает и служит проверкой «процесс жив и мне доступен». На Windows так нельзя: любой сигнал, кроме CTRL_C_EVENT и CTRL_BREAK_EVENT, безусловно завершает процесс с кодом, равным номеру сигнала, — и kill(pid, 0) убьёт его с кодом 0. PID мог уже достаться другому процессу, поэтому посылать сигнал по старому номеру рискованно.
Примеры
import os
import signal
pid = os.fork() # → ? только Unix: 0 в дочернем процессе, PID ребёнка — в родительском
if pid: os.kill(pid, signal.SIGTERM) # → ? родитель вежливо просит ребёнка завершиться, возвращается None
if pid: os.kill(pid, 0) # → ? «нулевой» сигнал ничего не шлёт: так проверяют, жив ли процесс
if pid: os.kill(pid, signal.SIGKILL) # → ? только Unix: безусловное убийство, обработчик его перехватить не может
os.kill(999999, signal.SIGTERM) # → ProcessLookupError: процесса с таким PID нет
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности