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


#!/bin/bash

# Функция для долгоживущего процесса с обработкой сигналов
long_running_process() {
    local id=$1
    
    # Обработка сигналов
    trap 'echo "Процесс $id получил SIGTERM, завершаюсь"; exit 0' TERM
    trap 'echo "Процесс $id получил SIGSTOP, приостановлен"; kill -STOP $$' USR1
    trap 'echo "Процесс $id получил SIGCONT, возобновлен"; kill -CONT $$' USR2
    
    echo "Процесс $id запущен (PID: $$)"
    
    # Бесконечный цикл с периодическим выводом
    while true; do
        echo "Процесс $id работает..."
        sleep 2
    done
}

echo "=== Запуск долгоживущих процессов ==="

# Запуск трех процессов в фоне
long_running_process 1 &
pid1=$!
echo "Запущен процесс 1 с PID: $pid1"

long_running_process 2 &
pid2=$!
echo "Запущен процесс 2 с PID: $pid2"

long_running_process 3 &
pid3=$!
echo "Запущен процесс 3 с PID: $pid3"

echo ""
echo "Ожидание 5 секунд перед управлением..."
sleep 5

echo ""
echo "=== Приостановка процесса 2 (SIGSTOP) ==="
kill -STOP $pid2
sleep 2

echo ""
echo "=== Возобновление процесса 2 (SIGCONT) ==="
kill -CONT $pid2
sleep 3

echo ""
echo "=== Завершение всех процессов (SIGTERM) ==="
kill -TERM $pid1
kill -TERM $pid2
kill -TERM $pid3

# Ожидание завершения
wait $pid1
wait $pid2
wait $pid3

echo ""
echo "=== Все процессы завершены ==="