все Python 3Linux · macOSosфункция
os.killpg
os — сигналы и приоритет
Посылает сигнал всей группе процессов. Доступно на Unix.
Синтаксис
os.killpg(...)
Посылает сигнал всем процессам группы — так останавливают программу вместе со всеми её потомками. Чтобы это работало, потомка запускают в собственной группе или сессии: subprocess.Popen(..., process_group=0) или start_new_session=True, а затем os.killpg(proc.pid, signal.SIGTERM).
Примеры
import os
import signal
pgid = os.getpgid(0) # → ? только Unix: id группы текущего процесса, например 12345
os.killpg(pgid, 0) # → ? только Unix: сигнал не посылается, проверяется лишь существование группы
import os
import signal
import subprocess; proc = subprocess.Popen(['sleep', '60'], start_new_session=True) # → ? потомок запущен в собственной группе процессов
os.killpg(os.getpgid(proc.pid), signal.SIGTERM) # → ? только Unix: завершает всю группу потомка целиком (os.kill снял бы лишь один процесс)
os.killpg(999999, signal.SIGTERM) # → ProcessLookupError: группы процессов с таким id нет
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности