January 9, 2025

Авторестарт ноды Shardeum

Скрипт на основе Python, который проверяет статус валидатора каждые 60 секунд и в случае необходимости делает его запуск.

  1. Обновление списка пакетов:sudo apt update
  2. Установка Python 3: sudo apt install python3
  3. Установка менеджера пакетов для Python: sudo apt install python3-pip
  4. Создаем сессию "screen" (при необходимости устанавливаем "screen"): screen -S validator_checker
  5. Заходим в директорию с нодой: cd ~/shardeum
  6. Создаем файл, который будет содержать текст скрипта (при необходимости, устанавливаем редактор "nano"): nano validator_checker.py
  7. В открывшемся поле (файл "validator_checker.py") вставляем текст скрипта - смотрите в конце статьи.
  8. Сохраняем текст скрипта в файле - нажимаем Ctrl+O, Enter, Ctrl+X.
  9. Запускаем скрипт: python3 validator_checker.py
  10. Выходим из сессии "screen": Ctrl+A+D

import subprocess import time

# Функция для выполнения команды в Docker контейнере def run_command(command): try: result = subprocess.check_output(command, shell=True, stderr=subprocess.STDOUT) return result.decode('utf-8') except subprocess.CalledProcessError as e: return f"Ошибка при выполнении команды: {e.output.decode('utf-8')}"

# Основная функция для проверки статуса и запуска валидатора def check_validator_status(): print("Проверка статуса валидатора...")

# Выполнение команды для получения статуса валидатора status_command = "sudo docker exec -it shardeum-validator operator-cli status" status_output = run_command(status_command)

if "state: stopped" in status_output: print("Валидатор остановлен, пытаемся запустить...") # Выполнение команды для запуска валидатора start_command = "sudo docker exec -it shardeum-validator operator-cli start" start_output = run_command(start_command) print("Валидатор запущен.") else: print("Валидатор работает нормально.")

def main(): while True: check_validator_status() time.sleep(60) # Пауза 60 секунд перед следующей проверкой

if __name__ == "__main__": main()

Если возникнет необузданное желание отблагодарить донатом... мой кошелек EVM (любые токены любой совместимой сети) - 0x938339c8b0382AB9F157529e2214cA943f266738