Код IT Загрузка примера кода…

Python main.py

import os
import signal
import sys

def spawn_worker():
    pid = os.fork()
    if pid == 0:
        # Дочерний процесс
        do_work()
        sys.exit(0)
    return pid

def handle_sigchld(signum, frame):
    # Сбор всех завершённых дочерних процессов
    while True:
        try:
            pid, status = os.waitpid(-1, os.WNOHANG)
            if pid == 0:
                break
            print(f"Дочерний процесс {pid} завершён со статусом {status}")
        except ChildProcessError:
            break

# Регистрация обработчика сигнала SIGCHLD
signal.signal(signal.SIGCHLD, handle_sigchld)

import os
import signal
import sys

def spawn_worker():
    pid = os.fork()
    if pid == 0:
        # Дочерний процесс
        do_work()
        sys.exit(0)
    return pid

def handle_sigchld(signum, frame):
    # Сбор всех завершённых дочерних процессов
    while True:
        try:
            pid, status = os.waitpid(-1, os.WNOHANG)
            if pid == 0:
                break
            print(f"Дочерний процесс {pid} завершён со статусом {status}")
        except ChildProcessError:
            break

# Регистрация обработчика сигнала SIGCHLD
signal.signal(signal.SIGCHLD, handle_sigchld)