907.74K

sarab

1.

Вспомогательные
сервисы ОС на Python
Выполнил: Махмудов Мухаммаджон
Группа: 657-23

2.

Реализовать сервис для ОС
• Для реализации нам понадобятся Python и несколько инструментов
• Нужны такие инструменты как Python 3, psutil, systemd и в моём случае Arch Linux
• Для установки python нужна команда sudo pacman -S python - это команда установит
сам пайтон и дефолтные библиотеки
• pacman -S python-psutil - установит psutil инструмент

3.

Описание сервиса
• Сервис реализован в виде Deamon, который переодически считывает состояние
системы и логирует данные в файл /var/log/os_monitor.log
• Там логируются такие действия как:
1) % загрузки процессора
• 2) % использования оперативной памяти(ОЗУ)
• 3) использование диска
• 4) сетевой вывод/ввод
• 5) количество активных процессов
• Всё это считывается и записывает в файл os_monitor.log

4.

Настройка автозапуска
• Автозапуск реализован с помощью systemd-сервиса os-monitor.service, который
автоматически стартует при запуске системы
• Файл состоит из трёх логических секций.
Unit - отвечает за описание и зависимости
• Service - как запускать и контролировать саму службу
• install - отвечает за автозапуск

5.

Пояснение скрипта
Unit -> Description=Python OS Monitoring Service - отображается при выполнении
After=network.target - запускает этот сервис после инициализации сети(сам инернет не
требуется)
Service -> Type=simple - systemd считает сервис запущенным сразу после старта
процесса
ExecStart=/usr/bin/python3 /opt/os-monitor/monitor_daemon.py - запускает файл с
указанной дорогой и передаёт ему скрипт
Restart=always - сервис будет автоматические перезапускаться при ошибках,
исключениях или если упадёт сам пайтон в течении 3-х секунд

6.

Python скрипт
• Импортируются библиотеки psutil, time, logging, signal.
• LOG_File = “...” это указывается на файл где сохранять
логи, далее создаётся интервал между сохранениями в 5с.
Далее running=true используется для выхода из бесконе-
чного цикла, после создаётся функция которая вызывается
при получении сигналов от ОС, далее объявляем running в
глобальную переменную. Далее пишется лог о штатной
остановке сервиса и останавливаем цикл через runnnin=
false
И т.д

7.

Запуск самого сервиса
• Запускаем сервис через sudo systemctl daemon-reload->sudo systemctl enable osmonitor.service->sudo systemctl start os-monitor.service
• После проверяем статус через->systemctl status os-monitor.service
• После просматриваем->tail -f /var/log/os_monitor.log
• Остановим и перезапустим с помощью->sudo systemctl stop os-monitor.service->sudo
systemctl start os-monitor.service->sudo systemctl restart os-monitor.service

8.

Проверка после перезагрузки
• Перезапустим ПК/ноут через sudo reboot->systemctl status os-monitor.service
• И как видим, оно работает

9.

Заключение:
В ходе выполнения данной работы был разработан вспомогательный сервис операционной системы, реализованный на
языке программирования Python. Созданный сервис функционирует в виде демона и предназначен для мониторинга и
логирования основных системных событий и параметров работы операционной системы.
В процессе разработки были использованы стандартные средства системы Linux и библиотека psutil, позволяющая
получать информацию о загрузке процессора, использовании оперативной памяти, дискового пространства, сетевой
активности и количестве активных процессов. Для управления сервисом и обеспечения его корректной работы был
настроен unit-файл systemd, обеспечивающий автоматический запуск сервиса при старте системы, а также его перезапуск
в случае сбоев.
Особое внимание было уделено корректной обработке сигналов завершения работы, что позволило обеспечить штатное
завершение сервиса без потери логируемых данных. Результаты мониторинга сохраняются в системный лог-файл, что
обеспечивает удобство анализа состояния системы во времени.
В ходе тестирования было подтверждено, что сервис стабильно работает в фоновом режиме, корректно запускается и
останавливается, а также успешно функционирует после перезагрузки операционной системы. Потребление системных
ресурсов сервисом остаётся минимальным, что делает его пригодным для длительной эксплуатации.
Таким образом, поставленная задача была выполнена полностью. Полученные в ходе работы знания и практические
навыки позволяют глубже понять принципы создания системных сервисов, взаимодействия программ с операционной
системой и администрирования сервисов с помощью systemd.
English     Русский Правила