#!/bin/bash
# Функция мониторинга процессов
monitor_processes() {
while true; do
clear
echo "========================================"
echo " Системный монитор "
echo "========================================"
echo "Текущее время: $(date '+%Y-%m-%d %H:%M:%S')"
echo "----------------------------------------"
echo "Топ-5 процессов по использованию CPU:"
ps aux --sort=-%cpu | head -6
echo "----------------------------------------"
echo "Топ-5 процессов по использованию RAM:"
ps aux --sort=-%mem | head -6
echo "----------------------------------------"
echo "Общее количество процессов: $(ps -e | wc -l)"
echo "========================================"
sleep 2
done
}
# Перехват сигнала SIGINT (Ctrl+C) для корректного завершения
trap 'kill $MONITOR_PID 2>/dev/null; echo "Мониторинг остановлен"; exit 0' SIGINT
# Запуск функции мониторинга в фоновом режиме
monitor_processes &
MONITOR_PID=$!
echo "Системный монитор запущен."
echo "PID фонового процесса мониторинга: $MONITOR_PID"
echo "Для остановки нажмите Ctrl+C"
# Ожидание завершения фонового процесса
wait $MONITOR_PID