Авторестарт ноды Shardeum
Скрипт на основе Python, который проверяет статус валидатора каждые 60 секунд и в случае необходимости делает его запуск.
- Обновление списка пакетов:
sudo apt update - Установка Python 3:
sudo apt install python3 - Установка менеджера пакетов для Python:
sudo apt install python3-pip - Создаем сессию "screen" (при необходимости устанавливаем "screen"):
screen -S validator_checker - Заходим в директорию с нодой:
cd ~/shardeum - Создаем файл, который будет содержать текст скрипта (при необходимости, устанавливаем редактор "nano"):
nano validator_checker.py - В открывшемся поле (файл "validator_checker.py") вставляем текст скрипта - смотрите в конце статьи.
- Сохраняем текст скрипта в файле - нажимаем Ctrl+O, Enter, Ctrl+X.
- Запускаем скрипт:
python3 validator_checker.py - Выходим из сессии "screen": Ctrl+A+D
# Функция для выполнения команды в 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 секунд перед следующей проверкой
Если возникнет необузданное желание отблагодарить донатом... мой кошелек EVM (любые токены любой совместимой сети) - 0x938339c8b0382AB9F157529e2214cA943f266738