Python Glossary English

все 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Сообщить о неточности