Python_scripts/README.md
2024-04-15 13:58:52 +00:00

24 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# suspend_miners.py
1. Ініціалізація списку команд для пошуку: commands_to_find містить список команд, які скрипт має шукати в процесах системи.
2. Пошук процесів: Для кожної команди зі списку commands_to_find скрипт використовує команду pgrep для пошуку процесів, які відповідають заданій команді.
3. Якщо знайдено хоча б один процес:
* Отримання інформації про сервери: Якщо скрипт ще не отримав інформацію про сервери, він викликає функцію get_server_info() для отримання даних про всі сервери, які керуються Pterodactyl. Ця функція запитує API Pterodactyl для отримання інформації про сервери та повертає словник, де ключами є UUID серверів, а значеннями — їх ID.
* Обробка кожного знайденого процесу: Для кожного знайденого процесу виконується послідовність кроків:
* Знаходиться батьківський процес (PPID) за допомогою функції find_parent_pid().
* Використовуючи батьківський процес, знаходиться UUID контейнера за допомогою функції find_uuid_by_ppid().
* Якщо знайдено UUID та він існує у словнику server_info_by_uuid, знаходиться ID сервера.
* Виконується запит до API Pterodactyl для зупинки сервера, пов'язаного з цим UUID.
* Якщо не знайдено жодного процесу: Якщо в жодному випадку не знайдено жодної з команд зі списку commands_to_find, скрипт завершить свою роботу.
4. Відправка запитів до Pterodactyl API: Якщо знайдено сервер для зупинки, скрипт надсилає запит до Pterodactyl API для зупинки сервера. Відповідь API виводиться у консоль.
* Після призупинення серера через Pterodactyl API щераз зупиняємо контейнер по UUID
5. Скрипт завершує свою роботу, якщо жодного процесу не знайдено, або після того, як були оброблені всі знайдені процеси.