WatchDog — это приложение-служба, которое контролирует список процессов, указанных в конфигурационном файле. Если какой-либо процесс завершится с ошибкой, WatchDog автоматически перезапустит его и запишет ошибку в лог. Программа поддерживает добавление новых процессов в список контроля во время выполнения.
- Python 3.x (проверено на Python 3.8 и выше)
- Операционная система: Windows, Linux или macOS
- Установленные зависимости:
configparser(встроен в Python 3)subprocess(встроен в Python 3)logging(встроен в Python 3)
-
Скачайте или клонируйте репозиторий:
git clone https://github.com/ваш-репозиторий/WatchDog.git
-
Перейдите в директорию проекта:
cd WatchDog -
Убедитесь, что файл
processes.iniнаходится в корневой директории.
-
Запустите
watchdog.py:python watchdog.py
-
Программа прочитает конфигурационный файл
processes.ini, запустит указанные процессы и начнёт их мониторинг. -
В случае ошибки программа попытается перезапустить процесс и запишет сообщение об ошибке в лог-файл
watchdog.log.
Конфигурационный файл processes.ini содержит список процессов для мониторинга. Каждый процесс указывается в отдельной секции. Пример файла:
[Process1]
filename = notepad.exe
args = test_file.txt
[Process2]
filename = python
args = example_script.py
[Process3]
filename = chrome.exe
args = https://www.example.com
[Process4]
filename = calc.exe
[Process5]
filename = python
args = -m http.server 8080- filename — имя исполняемого файла или скрипта.
- args — (опционально) параметры, которые передаются при запуске процесса.
Примечание: Параметры можно указывать без указания полного пути к файлу. Программа сначала ищет файл в текущей директории, затем — в системных путях.
Все события записываются в файл watchdog.log. Лог содержит:
- Метку времени
- Уровень события (например, INFO, ERROR)
- Сообщение об ошибке или успешном запуске процесса
Пример логов:
2024-10-08 21:53:43,704 - INFO - Attempting to start process notepad.exe with arguments: test_file.txt
2024-10-08 21:53:43,706 - ERROR - Failed to start process notepad.exe: [WinError 2] The system cannot find the file specified
- Кросс-платформенность: Программа работает на Windows, Linux и macOS.
- Автоматический перезапуск: Если один из процессов завершится с ошибкой, программа попытается перезапустить его.
- Гибкая настройка конфигурации: Можно добавлять процессы без указания полного пути и передавать параметры запуска.