Сообщить об ошибке.

Функция wait() модуля os в Python

Ждет завершения дочернего процесса

Синтаксис:

import os

os.wait()

Параметры:

  • Нет.

Возвращаемое значение:

Описание:

Функция wait() модуля os ждет завершения дочернего процесса и возвращает кортеж, содержащий его pid и индикацию состояния выхода: 16-битное число, младший байт которого является номером сигнала, который убил процесс и старший байт которого является состоянием выхода (если номер сигнала равен нулю). Старший бит младшего байта устанавливается, если был создан файл дампа ядра.

Для преобразования состояния выхода в код выхода можно использовать функцию os.waitstatus_to_exitcode().

Доступность: Unix.

Примеры завершения дочернего процесса.

Когда не имеет значения, какой дочерний процесс может завершиться первым, используйте os.wait(). Он возвращается, как только завершается любой дочерний процесс.

# test_wait.py
import os
import sys
import time

for i in range(2):
    print(f'PARENT {os.getpid()}: Forking {i}')
    worker_pid = os.fork()
    if not worker_pid:
        print(f'WORKER {i}: Starting')
        time.sleep(2 + i)
        print(f'WORKER {i}: Finishing')
        sys.exit(i)

for i in range(2):
    print(f'PARENT: Waiting for {i}')
    done = os.wait()
    print(f'PARENT: Child done: {done}')

# $ python3 test_wait.py 
# PARENT 24512: Forking 0
# PARENT 24512: Forking 1
# WORKER 0: Starting
# PARENT: Waiting for 0
# WORKER 1: Starting
# WORKER 0: Finishing
# PARENT: Child done: (24513, 0)
# PARENT: Waiting for 1
# WORKER 1: Finishing
# PARENT: Child done: (24514, 256)

Функция os.wait() возвращает идентификатор процесса и код завершения, упакованный в 16-битовое значение. Младший байт представляет номер сигнала, прекратившего выполнение процесса, а старший - код состояния, возвращенный процессом по его завершении.