Небольшая программа (исполняемый файл), которая позволит Вам автоматически перезапускать Ваш игровой сервер, который Вы хостите на хостинге quakehost
.
Вам необходимо будет передавать (в аргументах
) программе IPv4
(без порта) Вашего сервера, логин
и пароль
от формы http://quakehost.ru/login.php, а также периодичность отправки запросов к серверу через Source Query (в секундах
). Все необходимые примеры представлены ниже.
Несмотря на то, что quakehost
предоставляет возможность в настройках панели управления сервером указать автоматический перезапуск игрового сервера во время его падения
- к сожалению, это не работает должным образом и после краша сервера ничего не происходит. Пример:
Посмотрев форумы и поискав в них соответствующую информацию по этому поводу, я пришёл к выводу, что лучшим вариантом будет сделать отдельный экстернальный файл, который будет отправлять запрос к серверу через протокол Source Query
для проверки его работоспособности. В случае, если сервер не отвечает - авторизуемся в админской панели quakehost
, парсим необходимые поля для их последующей передачи в другом запросе (запросе на перезапуск сервера) и отправляем этот самый запрос с полученными данными для того, чтобы запустить/перезапустить
наш игровой сервер.
Задав определённый интервал запросов к игровому серверу, мы можем мониторить его работу и в случаях его падения - автоматически его перезапускать.
Скачать программу можно по этой ссылке.
Для того, чтобы правильно использовать данную программу, Вам необходимо следовать следующим шагам:
- Для начала, у Вас должны быть установлены последние версии библиотек
msvcp
(Microsoft Visual C++). Скачать библиотеки можно с официального сайта Microsoft; - Если у Вас установлены данные библиотеки, Вы можете без проблем запускать программу;
- После запуска программы у Вас на экране появится консольное окно со следующим содержимым:
- Здесь программа покажет Вам, какие аргументы необходимо ей передать для проверки сервера и его перезапуска;
- После правильной передачи аргументов, результат её выполнения проверки должен будет выглядеть примерно так:
- Теперь, в случаях падения или краша сервера, программа будет выполнять запрос для его проверки и при обнаружении проблем, его перезапускать.
Пример передачи аргументов программе представлен ниже:
QuakeHost_ServerRestarter %IPv4% %QuakeHostLogin% %QuakeHostPassword% %QueryInterval%
- Аргументы должны быть переданы именно в этом порядке, иначе произойдёт ошибка или запросы будут выполняться некорректно.
QuakeHost_ServerRestarter 46.174.55.192 MyLogin1 MyPassword1 15
- Пример для сервера 1;QuakeHost_ServerRestarter 46.177.57.152 MyLogin2 MyPassword2 25
- Пример для сервера 2.
Вы можете создать отдельный.bat/.cmd
-файл и указать в нём нужные Вам аргументы, после чего запускать и наблюдать результат выполнения.
Также, это можно сделать запустивкомандную строку
, выбрав необходимый каталог при помощи командыcd
и запустив программу так, как показано в примерах выше.
В случаях, если Вашлогин
илипароль
содержатпробелы
, то при передачи данных аргументов Вам необходимо будет заключить их в кавычки""
. Пример:QuakeHost_ServerRestarter 46.174.55.192 "My Login" "My Password" 25
- Пример для данных с пробелами.
В программе отсутствует мьютекс, поэтому Вы можете запускать несколько её экземпляров для проверки работоспособности нескольких серверов сразу.
ЗАПОМНИТЕ: В программе отсутствует проверка на правильность написания IPv4
, поэтому не рекомендуется указывать строки или другие случайные значения.
ЗАПОМНИТЕ: В программе отсутствует проверка на указанный интервал ожидания для выполнения запросов, поэтому не рекомендуется ставить значение интервала меньше нуля.
ЗАПОМНИТЕ: Также, в случаях обновления или изменения названий .php
-файлов на сервере quakehost
, или изменения данных для передачи в запросе, данное решение может сломаться и оказаться нерабочим.
ЗАПОМНИТЕ: Рекомендуется выставлять интервал ожидания ~120
секунд, чтобы не перегружать сервер запросами (Source Query
).
Для запуска проекта Вам понадобится среда разработки Visual Studio
, желательно 2019
года и выше.
Для компилияции программы Вам небходимо будет использовать следующую конфигурацию: Release/x86
.
Также, для успешной компиляции проекта, в его свойствах необходимо будет указать компоновщику статическую библиотеку WinInet.lib
, так как программа использует функции WinInet
для отправки запросов в сеть.