Скрипт запуска HLTV для RH Linux |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
|
![]() |
Скрипт запуска HLTV для RH Linux |
![]() |
![]()
Сообщение
|
![]() ![]() |
За основу был взят скрипт запуска HLDS-серверов от LeXiKoN.
Версия: 0.981 от 08.05.2013 Автор исходного скрипта: LeXiKoN. Автор данного скрипта: Predator. Сайт поддержки: https://zion.pw/forum/viewtopic.php?f=89&t=1200 ChangeLog: 0.981
Особенности:
* Распределение по ядрам сеансов HLTV * Подключение по команде к консоли HLTV * Определение статуса работы HLTV * Предстартовая проверка на запущенный сеанс HLTV * Создание PID-файлов запущенных процессов HLTV и сеансов screen Требования:
* Установленный пакет screen (sudo yum install screen) Установка:
Код ##################################################### # Конфигурирование ##################################################### HOST_NAME="My Server" #Название хоста screen_name=hltv #Название screen-сессии path="/opt/hlds/" #Путь до ROOT-директории hlds-сервера hltv_pid=hltv.pid #Имя PID-файла HLTV screen_pid=$screen_name-screen.pid #Имя PID-файла screen server_ip=0.0.0.0 #IP сервера, к которому подключаем HLTV server_port=27015 #Порт сервера, к которому подключаем HLTV hltv_port=28048 #Порт HLTV rec_path="/demos/HLTV_" #Путь_(относительно_каталога_cstrike)/префикс_в_имени_демки hltv_options="" #Дополнительные параметры use_user=hlds #Имя юзера от которого запускается HLTV #---------------------------------------------------- # Номер ядра/процессора в линуксе # 2х-ядерные: 0 - первое ядро, 1 - второе ядро # 4x-ядерные: 0 - первое ядро ... 3 - четвертое ядро # По аналогии с другими многоядерными процессорами use_core=0 #----------------------------------------------------
Код chmod +x /etc/init.d/hltv
Код chmod +x /opt/hlds/hltv_run
Код chmod +x /opt/hlds/cstrike/dlls/director_i386.so
Код chkconfig hltv on Готово! Использование::
Код service hltv start
Код service hltv stop
Код service hltv restart
Код service hltv status
Код service hltv console hltv Код #!/bin/bash # chkconfig: 2345 95 20 # description: HLTV Start Script # Start HLTV Proxy # processname: hltv # 1st_author: LeXiKoN http://eqline.ru # 2nd_author: Predator http://zion.org.ru # version: 0.981 # Source function library. . /etc/rc.d/init.d/functions VERSION=0.981 ##################################################### # Конфигурирование ##################################################### HOST_NAME="My Server" #Название хоста screen_name=hltv #Название screen-сессии path="/opt/hlds/" #Путь до ROOT-директории hlds-сервера hltv_pid=hltv.pid #Имя PID-файла HLTV screen_pid=$screen_name-screen.pid #Имя PID-файла screen server_ip=0.0.0.0 #IP сервера, к которому подключаем HLTV server_port=27015 #Порт сервера, к которому подключаем HLTV hltv_port=28048 #Порт HLTV rec_path="/demos/HLTV_" #Путь_(относительно_каталога_cstrike)/префикс_в_имени_демки hltv_options="" #Дополнительные параметры use_user=hlds #Имя юзера от которого запускается HLTV #---------------------------------------------------- # Номер ядра/процессора в линуксе # 2х-ядерные: 0 - первое ядро, 1 - второе ядро # 4x-ядерные: 0 - первое ядро ... 3 - четвертое ядро # По аналогии с другими многоядерными процессорами use_core=0 #---------------------------------------------------- ################# ВНИМАНИЕ ################### # # Строчки ниже, если не знаете, лучше не трогать! # ################# ВНИМАНИЕ ################### RETVAL=0 succes="[\033[1;32m ОК \033[0m]" failed="[\033[1;31m FAIL \033[0m]" status_on="[\033[1;32m ONLINE \033[0m]" status_off="[\033[1;31m OFFLINE \033[0m]" title="\033[1;34m [>>]\033[0m" hltv_run=$path/hltv_run # Команда screen INTR="taskset -c $use_core /usr/bin/screen -A -d -m -S $screen_name" if [ ! -x $path/hltv ]; then printf "\033[22;31m Проверьте права на исполнение hltv \033[0m\n" exit 1 fi prestart_check() { if [ -f $path/$hltv_pid ] && [ -f $path/$screen_pid ]; then ch=`ps -ef | grep SCREEN | grep $screen_name` if [ -n "$ch" ]; then printf "$title\033[1;34m HLTV на $HOST_NAME\033[0m \033[32m(!!) УЖЕ запущен (!!)\033[0m\n" exit 1 else rm -rf $path/$screen_pid rm -rf $path/$hltv_pid fi fi } start() { # Предстартовая проверка prestart_check cd $path # Запускаем HLTV $INTR sudo -u $use_user $hltv_run +connect $server_ip:$server_port -port $hltv_port +record $rec_path +exec hltv.cfg $hltv_options # Создаём PID вручную, так как у HLTV отсутствует такой параметр touch "$hltv_pid" ps -ef | grep HLTV | grep "hltv" | grep -v grep | awk '{ print $2}' > $path/$hltv_pid # Поиск и запись пидов процессов скрина в системе ps -ef | grep SCREEN | grep "$screen_name" | grep -v grep | awk '{ print $2}' > $path/$screen_pid printf "$title\033[1;34m Запуск HLTV на $HOST_NAME \033[0m\n" printf "\t\033[1;35m Привязка к ядру:\033[0m \033[1;36m$use_core\033[0m\n" printf "\t\033[1;35m Запуск от юзера:\033[0m \033[1;36m$use_user\033[0m\n" printf "\t\033[1;33m Статус: \033[0m" sleep 1 if [ -f $path/$hltv_pid ] && [ -f $path/$screen_pid ]; then ch=`ps -ef | grep SCREEN | grep $screen_name` if [ -n "$ch" ]; then printf "$succes\n" else printf "$failed\n" fi else printf "Creating $hltv_pid or $screen_pid FAILED!" fi } stop() { if [ -f $path/$hltv_pid ] && [ -f $path/$screen_pid ]; then # Останавливаем HLTV!! printf "$title\033[1;31m Остановка HLTV на $HOST_NAME \033[0m" /usr/bin/screen -R $screen_name -p 0 -X register . quit /usr/bin/screen -R $screen_name -p 0 -X paste . /usr/bin/screen -R $screen_name -p 0 -X stuff $'\n' sleep 1 /usr/bin/screen -R $screen_name -X quit > /dev/null sleep 1 rm -rf $path/$screen_pid rm -rf $path/$hltv_pid printf "$succes\n" else printf "\033[1;34m Невозможно остановить HLTV на $HOST_NAME, HLTV НЕ запущен \033[0m" printf "$failed\n" fi } status() { printf "$title\033[1;34m Статус HLTV на $HOST_NAME \033[0m\n" printf "\t\033[1;35m Привязан к ядру:\033[0m \033[1;36m$use_core\033[0m\n" printf "\t\033[1;35m Запущен от юзера:\033[0m \033[1;36m$use_user\033[0m\n" printf "\t\033[1;33m Статус: \033[0m" sleep 1 ch=`ps -ef | grep SCREEN | grep $screen_name` if [ -n "$ch" ]; then printf "$status_on\n" else printf "$status_off\n" fi } console() { if [ -f $path/$hltv_pid ] && [ -f $path/$screen_pid ]; then printf "$title\033[1;34m Подключение к консоли HLTV $HOST_NAME \033[0m\n" printf "\t\033[36m Для выхода из консоли поочерёдно нажать \033[1;36mCtrl+A, D \033[0m\n" printf "\t\033[36m Для листинга консоли поочерёдно нажать \033[1;36mCtrl+A, Esc \033[0m\n" printf "\t\033[36m Для выхода из режима листинга нажать \033[1;36mEsc \033[0m\n" concnt=5 while [ $concnt -gt 0 ]; do echo -en "\r\t Консоль включится через $concnt сек " let concnt=concnt-1 sleep 1 done /usr/bin/screen -R $screen_name printf "\t$succes\n" else printf "\033[1;31m Невозможно подключиться к консоли HLTV $HOST_NAME, HLTV не запущен \033[0m\n" fi } case "$1" in start) start ;; stop) stop ;; restart) stop sleep 2 start ;; status) status ;; console) console ;; *) echo "Usage: $0 {start|stop|restart|status|console}" exit 1 esac exit 0 hltv_run Код #!/bin/bash path=. cd $path LD_LIBRARY_PATH=$path; export LD_LIBRARY_PATH ./hltv $@ © При копировании данного поста ссылка на источник обязательна: https://zion.pw/forum/viewtopic.php?f=89&t=1200
Отредактировал: Predator.Cat, - 11.7.2017, 13:25
Причина: отредактировано
Прикрепленные файлы:
|
![]() |
|
![]() ![]() |