#!/bin/bash
# Вывод информации о родительском процессе
echo "=== Родительский процесс ==="
echo "PID родителя: $$"
echo "PPID родителя: $PPID"
echo ""
# Функция для дочернего процесса
child_process() {
local id=$1
echo "Дочерний процесс $id запущен (PID: $$, PPID: $PPID)"
sleep 2
echo "Дочерний процесс $id завершает работу"
}
# Создание трех дочерних процессов в фоновом режиме
echo "=== Запуск дочерних процессов ==="
child_process 1 &
pid1=$!
echo "Запущен дочерний процесс 1 с PID: $pid1"
child_process 2 &
pid2=$!
echo "Запущен дочерний процесс 2 с PID: $pid2"
child_process 3 &
pid3=$!
echo "Запущен дочерний процесс 3 с PID: $pid3"
echo ""
echo "=== Ожидание завершения дочерних процессов ==="
# Ожидание завершения всех дочерних процессов
wait $pid1
echo "Дочерний процесс 1 завершен (код: $?)"
wait $pid2
echo "Дочерний процесс 2 завершен (код: $?)"
wait $pid3
echo "Дочерний процесс 3 завершен (код: $?)"
echo ""
echo "=== Все дочерние процессы завершены ==="
echo "Родительский процесс продолжает работу"