Загрузка данных


#!/bin/bash

# Рекурсивная функция для создания дерева процессов
create_tree() {
    local depth=$1
    local max_depth=$2
    # Создаем отступ для красивой визуализации
    local indent=$(printf '%*s' $((depth * 4)) '')
    
    echo "${indent}├── Уровень $depth: PID=$$, PPID=$PPID"
    
    if [ $depth -lt $max_depth ]; then
        # Создаем два дочерних процесса (субшеллы) в фоновом режиме
        ( create_tree $((depth + 1)) $max_depth ) &
        ( create_tree $((depth + 1)) $max_depth ) &
        wait # Ждем завершения дочерних процессов текущего уровня
    else
        sleep 5 # Держим процесс живым 5 секунд, чтобы вы успели посмотреть его в pstree
    fi
}

echo "=== Начало построения иерархии ==="
echo "Родительский процесс: PID=$$, PPID=$PPID"
echo "⚠️ БЫСТРО откройте ДРУГОЙ терминал и выполните команду:"
echo "   pstree -p -s $$"
echo "   pgrep -a -f task3.sh"
echo "-----------------------------------"

create_tree 0 2

wait
echo "=== Иерархия процессов завершена ==="