Python Glossary Русский

all Python 3Linux · macOSosfunction

os.killpg

os — signals and priority

Send a signal to a whole process group. Availability: Unix.

Syntax

os.killpg(...)

It sends a signal to every process in a group — the way to stop a program together with all its children. For this to work, launch the child in its own group or session: subprocess.Popen(..., process_group=0) or start_new_session=True, then os.killpg(proc.pid, signal.SIGTERM).

Examples

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 нет

See also

Common errors

Open in the full glossarydocs.python.orgReport an inaccuracy