Python Glossary Русский

all Python 3Linux · macOSosfunction

os.setpgid

os — sessions and process groups

Place a process into a given process group. Availability: Unix.

Syntax

os.setpgid(...)

It moves a process into another group, usually right after fork: os.setpgid(0, 0) makes the child lead its own group. Shells separate jobs this way. You may move only yourself or your children, and only within one session. subprocess offers the same via process_group.

Examples

import os
os.setpgid(0, 0)  # → ? только Unix: pid=0 и pgid=0 означают «текущий процесс, своя новая группа»
print(os.getpgrp() == os.getpid())  # → ? только Unix: True — процесс стал лидером собственной группы
child = os.fork()  # → ? только Unix: 0 в дочернем процессе, PID потомка в родительском
os.setpgid(child, child)  # → ? только Unix: идиома job control — вызывают оба процесса (в потомке child == 0, «сам себе группа»), это снимает гонку с exec
os.setpgid(os.getppid(), 0)  # → ? только Unix: ProcessLookupError — менять группу можно себе и своим потомкам, но не родителю

See also

Open in the full glossarydocs.python.orgReport an inaccuracy