Скрипт запуска серверов hlds и srcds в Linux

FеnX™

Участник
Сообщения
1
Реакции
0
[>>] Запуск сервера [Gaming-Servera.Ru] Public Ukraine
Порт севрера: 27015
Привязка к ядру: 0
Запуск от юзера: root
Статус: [root@linco143 init.d]#
что делать?


для начало не запускать из под рута .. создай юзера и поменяй в конфиге строку

use_user=csserv

:victory:
 

ololosh

Участник
Сообщения
134
Реакции
7
Скачал исходники. Закинул в свой startcs.sh. Поменял данные (айпи и прочее) Запускаю скриптик и мне консоль выдаёт

C-подобный:
Проверьте права на исполнение hlds_run

Хотя права выставлял и через chmod и через winscp полные выдал. И ничего
 

Arhci

Участник
Сообщения
14
Реакции
0
Скрипт не может остановить сервер, он убивает лишь его дочерний процесс.
Сделал небольшой madskillz
В параметры старта добавил
PHP:
ps -ef | grep '/bin/sh ./srcds'|grep '27016' | awk '{ print $2}' > $path/screen2_pid
в параметры остановки
PHP:
/usr/bin/kill -9$(cat $path/screen2_pid)
rm -rf $path/screen2_pid
А еще не работает checker, да и логи не пишутся.
 
Последнее редактирование:

Максим Беликов

Участник
Сообщения
1
Реакции
0
Через crontab не хочет делать рестарт,как быть?

Добавлено через 6 минут
Скрипт не может остановить сервер, он убивает лишь его дочерний процесс.
Сделал небольшой madskillz
В параметры старта добавил
PHP:
ps -ef | grep '/bin/sh ./srcds'|grep '27016' | awk '{ print $2}' > $path/screen2_pid
в параметры остановки
PHP:
/usr/bin/kill -9$(cat $path/screen2_pid)
rm -rf $path/screen2_pid
А еще не работает checker, да и логи не пишутся.

а ты делаешь рестарт по времени? Если да, то как? Я в crontab прописал
39 14 * * * /etc/init.d/server_cs restart
и не работает
 
Последнее редактирование:

Monomizer

Держу JDW в бане.
Сообщения
1,947
  • Команда форума
  • #25
Через crontab не хочет делать рестарт,как быть?

Добавлено через 6 минут


а ты делаешь рестарт по времени? Если да, то как? Я в crontab прописал
39 14 * * * /etc/init.d/server_cs restart
и не работает

Права на скрипт дал для юзера, от которого скрипт запускаешь?
 

Tallanvor

НЕ ПИШУ я плагины!!! И не правлю! И ваще...
Сообщения
1,352
Реакции
554
Мужики, не страдайте фигнёй.
Есть замечательные скрипты от Даниэля, даже сами Valve их рекомендуют использовать.
Под Линукс - самое оно, там есть всё, что только может понадобиться.

А вы велосипеды строите.........
 

Arhci

Участник
Сообщения
14
Реакции
0
Мужики, не страдайте фигнёй.
Есть замечательные скрипты от Даниэля, даже сами Valve их рекомендуют использовать.
Под Линукс - самое оно, там есть всё, что только может понадобиться.

А вы велосипеды строите.........
Окей, только вот у Меня на одной машине целых 4 сервера одной и той же игры, в частности - Team Fortress 2.
И данный скрипт при запуске сервера несомненно проверяет, не запущен ли он ранее. И знаете, как он это делает? По имени процесса srcds_run.
Что имеем в итоге? При попытке запустить второй сервер, он мне отвечает, что тот уже работает, и запускать его не нужно. Отлично, правда? И это Я еще не добрался до того, каким образом он решает, какой сервер выключить. Не удивлюсь, если так же по имени.
Пока печатал, решил проверить заявленное выше. Да, так и есть. На первый взгляд он абсолютно бесполезен, если на одной машине должны работать 2 и более сервера одной и той же игры, хотя не удивлюсь, если такие же затруднения возникнут и с остальными серверами srcds_run.
Конечно может Мои выводы поспешны, и Я не до конца во всём разобрался, но первые грабли уже опробованы.
 

jackal_66

Участник
Сообщения
27
Реакции
1
Скрипт запуска серверов hlds и srcds в Linux

Автор LeXiKoN
Версия 0.98 от 02.05.2011

Оригинал (там же и поддержка автора)

Особенности:

Цветовая индикация, что позволит вам легко понять информацию
Распределения серверов по ядрам ( подробнее ниже )
Подключение по команде к консоли сервера
Определение статуса работы сервера
Возможность компиляции плагинов в каталоге scripting AmxModX
Проверка версии скрипта
Предстартовая проверка на запущенный процесс hlds
Проверка работоспособности сервера ( необходимо добавить фунцию в crontab - читаем раздел "Установка" )
Ведение лога консоли сервера в файл cstrike/qconsole.log
Ведение лога проверки работоспособности сервера в файл checker.log
Очистка логов checker.log и qconsole.log при превышении размера в 10Мб. ( необходимо добавить фунцию в crontab - читаем раздел "Установка" )

Конфигурирование:

Конфигурация происходит напрямую в самом файле с помощью блокнота

SERVER_NAME="My Server" #Название сервера
screen_name=server #Название screen-сессии
path="/home/hlds/server/" #Путь до ROOT-директории сервера
hlds_ip=0.0.0.0 #IP сервера
hlds_port=27015 #Порт сервера
hlds_gametype=cstrike #Тип игры
hlds_players=20 #Максимальное количество игроков на сервере
hlds_map=de_inferno #Имя первоначальной карты при запуске
hlds_pid=server.pid
screen_pid=$screen_name-screen.pid
hlds_options="-pingboost 3 +exec server.cfg +log on" #Дополнительные параметры запуска
use_user=hlds #Имя юзера от которого запускается сервер
condebug=1
check_version=0
checker_command="quakestat" #Команда пакета qStat отвечающего за проверку сервера
restarttime=10 #Время после которого сервер будет перезагружен ( выводится в чат на сервере )

#----------------------------------------------------
# Номер ядра/процессора в линуксе
# 2х-ядерные: 0 - первое ядро, 1 - второе ядро
# 4x-ядерные: 0 - первое ядро ... 3 - четвертое ядро
# По аналогии с другими многоядерными процессорами
use_core=0
#----------------------------------------------------


Требования:


Установленные пакеты: qstat, tail, screen, wget, crontab

Установка:

Скачиваем txt файл для нужной системы
server_deb.txt - Для систем на дистрибутиве Debian
server_rh.txt - Для систем на дистрибутиве RedHat

Переименовываем в нужное вам имя без расширения
Копируем в /etc/init.d/

Устанавливаем пакет qstat, а также другие необходимые для работы пакеты, описанные в разделе "Требования"

Debian подобные дистрибы:
aptitude install qstat

Fedora/Mandriva/CentOS подобные дистрибы:
yum install qstat

Если данный пакет отсутствует в ваших дистрибутивах то скачиваем исходники и собираем!

Устанавливаем права
chmod +x /etc/init.d/hlds_runscript

Добавляем в автозагрузку:

Системы RedHat:
chkconfig --add [имя скрипта]

Системы Debian:
update-rc.d [имя скрипта] defaults

Добавляем проверку работы сервера по расписанию в Crontab (!!!!!!! Проверка будет
происходить каждые 30 минут !!!!!!!)

crontab -e

и вносим туда строку
0,30 * * * * /etc/init.d/[имя скрипта] checker

Добавляем проверку размеров логов по расписанию в Crontab (!!!!!!! Проверка будет происходить каждую неделю !!!!!!!)

crontab -e

и вносим туда строку
0 0 * * 0 /etc/init.d/[имя скрипта] logsize

Конфигурируем скрипт!!

Не забудьте
checker_command="quakestat" #Команда пакета qStat отвечающего за проверку сервера

В Вашем дистрибутиве она может быть иной! Иначе не будет работать проверка сервера по расписанию

Пользуемся

Для Debian Squeeze ВАЖНО! Если вы используете несколько скриптов для каждого сервера в отдельности то НЕОБХОДИМО поменять в заголовке файла параметр
# Provides:

для каждого сервера он должен быть разный, к примеру:
# Provides: server1


Скрипт

Debian/Ubuntu и прочие

HLDS:
wget http://eqline.ru/project/hlds_init_script/server_deb.txt

SOURCE:
wget http://eqline.ru/project/hlds_init_script/server_deb_source.txt

RedHat/Fedora и прочие

HLDS:
wget http://eqline.ru/project/hlds_init_script/server_rh.txt

SOURCE:
wget http://eqline.ru/project/hlds_init_script/server_rh_source.txt


Файлы во вложении от 27-11-11, более свежие версии смотрите на сайте автора

UP-ну данную тему! Очень помогла в настройке VDS! Огромное спасибо автору и selax(-у) за оказанную помощь.
 
Последнее редактирование:
Сверху Снизу