HLDS launcher

KenCarter

Пользователь
Регистрация
29 Авг 2017
Сообщения
151
Симпатии
10
Лучшие ответы
0
Пол
Мужской
#1
Всем привет.
Скрипт управления сервером.
PHP:
Author remake: neygomon
Original Code: Cr@zy
И так, что умеет скрипт:
  • Запускать сервер
  • Останавливать(корректно, а не kill процесса) сервер
  • Перезапускать сервер
  • 1. Проверять состояние(работает или нет, путем проверки screen-сессии) сервера
  • 2. Проверять состояние(работает или нет, путем запроса к серверу как удаленный клиент - qstat) сервера
  • Обновлять сервер
  • Устанавливать сервер ( Вам надо указать только путь до корневой папки сервера, папку можно не создавать - сама создастся в процессе установки;) )
  • Выводить консоль сервера
  • Распределять сервера по ядрам. Актуально для тех, кто собирается держать несколько серверов на одной машине
  • Добавляться в автозапуск системы

Установка:
  • Скачать архив и распаковать
  • Файл hlds открыть NotePad++ или AkelPad (не в коем случае не Блокнотом!!!) и произвести необходимые настройки - указать IP, port и тд. Там есть комментарии
  • Далее заходим на SFTP (в FTP клиенте вводим данные от root и указываем 22 порт)
  • Заливать в /etc/init.d
  • chmod 700 /etc/init.d/ hlds

Доступные команды:
  • /etc/init.d/hlds start - запускает сервер
  • /etc/init.d/hlds stop - останавливает сервер
  • /etc/init.d/hlds restart - перезапускает сервер
  • /etc/init.d/hlds status - проверяет работоспособность сервера (screen - сессию)
  • /etc/init.d/hlds checker - проверяет работоспособность сервера (qstat)
  • /etc/init.d/hlds console - выводит консоль сервера
  • /etc/init.d/hlds update - обновление сервера (тут же и установка. выполнять команду 1 раз. скрипт "умный" сам все сделает :))
Список необходимых пакетов:

    • awk
    • screen
    • qstat
Особенности:

Если серверов несколько, клонируйте скрипты, например hlds1, hlds2 и тд

P.S. Автор izzatillo
 

Вложения

KoPa6JIuK

Пользователь
Регистрация
13 Июн 2017
Сообщения
12
Симпатии
0
Лучшие ответы
0
Пол
Мужской
#2
Пробовал запустить, не запускает =(
OC: Debian 8.0 x86-64

Код:
root@vps:~# /etc/init.d/hlds start
Starting serv2...
Start command : -game cstrike -port 27070 +ip ИП_АДРЕС=) -maxplayers 20 +sys_ticrate 500 +map de_dust2 -pingboost 1 -bots
HLDS use 0
serv2 started successfully
root@vps:~# /etc/init.d/hlds status
serv2 is DOWN
root@vps:~#
Код:
# Game config
STEAM_LOGIN="anonymous"            #Не менять:) HL1 сервера выкачиваются и с анонимуса:)
SCREEN_NAME="serv2"            #Название screen-сессии
USER="root"                #Пользователь, от которого будем запускать сервер. !!!От root запускать сервера не стоит!!!
DIR_STEAMCMD="/home/steamcmd"        #root Директория steamCMD
DIR_ROOT="/home/hlds/server2"        #root Директория HLDS
DIR_GAME="$DIR_ROOT/cstrike"        #Это не менять:)
DIR_LOG="/home/hlds/logs"
DAEMON_GAME="hlds_run"            #HLDS скрипт | Не менять:)

#Start Распределение серверов по ядрам процессора
USE_CORE="0"                #Ядро, на котором запускать HLDS. 0 - первое ядро, 1 - второе ядро и тд. all - все ядра (дефолт значение)
                    #По умолчанию используются все ядра системы, но HLDS - однопроцессорное приложение.
                    #Поэтому данную настройку следует использовать в случае нескольких серверов, чтобы все сервера не легли на одно ядро.
#End Распределение серверов по ядрам процессора
                
MAXPLAYERS="20"                #Количество слотов - 32 максимум ( HL1 limit:c )
SYS_TICRATE="500"            #sys_ticrate
IP="ИП_АДРЕС=)"                #IP адрес сервера
PORT="27070"                #Порт сервера
EXTRAPARAMS="-pingboost 1 -bots"        #Дополнительные параметры запуска
Права на hlds выставлены 700 (пробовал и с 755 и 777) результата 0.
Права на hlds_run выставлены 755 (так же пробовал с 777) результата 0.

Подскажите, в чем может быть запара?
 

KoPa6JIuK

Пользователь
Регистрация
13 Июн 2017
Сообщения
12
Симпатии
0
Лучшие ответы
0
Пол
Мужской
#4
neygomon, да, в данный момент запущен
Код:
screen -A -m -d -S cspug ./hlds_run -game cstrike -pingboost 1 -port 27070 -ip ип_ +maxplayers 10 +map de_dust2 +sys_ticrate 500
 

KoPa6JIuK

Пользователь
Регистрация
13 Июн 2017
Сообщения
12
Симпатии
0
Лучшие ответы
0
Пол
Мужской
#6
neygomon, дело точно не из-за него) ибо пишу с мобилы, а данную команду запуска скопировал из вк) что бы было удобно с телефона поднимать сервер, если упадёт.
 

hooligan***

Пользователь
Регистрация
9 Июн 2017
Сообщения
144
Симпатии
15
Лучшие ответы
0
Пол
Мужской
#7
KoPa6JIuK, Введи ps axf и проверь все запущенные процессы, и удали если будут процессы hlds_run и hlds_linux, чтоб удалить kill и pid процесса. Потом удали -bots оттуда, как то красиво выглядит, лучше пропиши отдельно в строку запуска. И поменяй название screen-сессии на всякий случай. Не факт что поможет, ну попробуй)
 
Последнее редактирование:

pokemon GO

Пользователь
Регистрация
9 Июл 2017
Сообщения
47
Симпатии
0
Лучшие ответы
0
Пол
Мужской
#8
Подскажите как добавить еще один параметр в лайнчер
 

KoPa6JIuK

Пользователь
Регистрация
13 Июн 2017
Сообщения
12
Симпатии
0
Лучшие ответы
0
Пол
Мужской
#10
pokemon GO, EXTRAPARAMS=" сюда пиши параметры"
Если ты про это)
 

neygomon

Его Темнейшество :j
Администратор
Регистрация
8 Июн 2017
Сообщения
1.090
Симпатии
448
Лучшие ответы
1
Пол
Мужской

pokemon GO

Пользователь
Регистрация
9 Июл 2017
Сообщения
47
Симпатии
0
Лучшие ответы
0
Пол
Мужской
#13
Всем привет, снова с лаунчером недопонимание вышло.

Не хочет останавливаться сервер командой.
  • /etc/init.d/hlds stop - останавливает сервер
Точнее идет его перезапуск, хотя в консоли после ввода команды пишет stopping server...
Почему происходит рестарт, а не остановка?
 

wareznik

Пользователь
Регистрация
12 Июн 2017
Сообщения
115
Симпатии
8
Лучшие ответы
1
Пол
Мужской
#14
Всем привет, снова с лаунчером недопонимание вышло.

Не хочет останавливаться сервер командой.
  • /etc/init.d/hlds stop - останавливает сервер
Точнее идет его перезапуск, хотя в консоли после ввода команды пишет stopping server...
Почему происходит рестарт, а не остановка?
/etc/init.d/hlds quit
в hlds_run поменять
if test $retval -eq 0 && test -z $RESTART; then
break; # if 0 is returned then just quit
fi

на

if test $retval -eq 0; then
break; # if 0 is returned then just quit
fi
 
Сверху