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