Python Glossary English

все Python 3Linux · macOSosфункция

os.wait

os — ожидание процессов

Ждёт завершения любого дочернего процесса; возвращает (pid, статус). Доступно на Unix.

Синтаксис

os.wait(...)

Ждёт любого потомка, поэтому в программе, где детей запускают разные части кода — например, ещё и subprocess, — может «украсть» чужой статус. Надёжнее waitpid с конкретным PID. Если потомков нет, поднимается ChildProcessError. Возвращает закодированный статус — переводите через waitstatus_to_exitcode.

Примеры

import os
pid = os.fork()  # → ? только Unix: 0 в дочернем процессе, pid ребёнка — в родительском
if pid == 0: os._exit(3)  # ребёнок завершается кодом 3 и не выполняет остальной скрипт
child, status = os.wait()  # родитель блокируется здесь, пока не завершится любой из его детей
print(child == pid, os.waitstatus_to_exitcode(status))  # → ? True 3 — дождались того самого ребёнка, из сырого статуса извлечён код выхода
print(os.wait())  # → ChildProcessError — незавершённых детей больше нет, ждать некого

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности