ЗАКРЫТЬ
Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация


Наши новости:

11-апр
02-дек
17-апр
30-дек


2 страниц V   1 2
Раскрутка Counter-Strike 1.6

hlds в виде демона

, Демон для запуска, остановки и вывода состояния сервера
Статус пользователя Predator.Cat
сообщение 25.3.2011, 0:38
Сообщение #1


Стаж: 10 лет

Сообщений: 251
Благодарностей: 33
Полезность: 119

Перерыл кучу форумов в инете в поисках подходящего скрипта запуска CS, но все они оказались либо кривыми, либо неработающими. Этот, конечно, тоже не идеал, но работает, по крайней мере, исправно. Если кто-нибудь считает, что демон *** предлагайте свои варианты, я буду только рад. Скрипт я писал не с нуля, а на основе аналогичного скрипта для Tomcat.
Да, кстати, расскажу только для RedHat-подобных систем, ибо из остальных сталкивался только со SLES, да и то уже не помню. Надеюсь, те, кто поопытней, меня дополнит. Так что не ленитесь читать комментарии.

Собственно, сам скрипт:
Код
#!/bin/sh
#
# /etc/init.d/cs
#
# This is the init script for starting up the
# Counter-Strike 1.6 Server
#
# chkconfig: 234 20 80
# description: Starts and stops the CS daemon
# processname: cs
#

# source functions library for 'daemon' function
. /etc/init.d/functions

CS_HOME=/opt/hlds
CS_START=$CS_HOME/cs_start.sh
CS_STOP=$CS_HOME/cs_stop.sh
CS_USER=hlds

start() {
echo -n $"Starting CS service: "
daemon --user $CS_USER $CS_START RETURN_CODE=$?
echo $?
}

stop() {
echo -n $"Stopping CS service: "
daemon --user $CS_USER $CS_STOP RETURN_CODE=$?
echo $?
}

status() {
ps aux | grep hlds | grep -v grep
}

# Handle the different input options
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
*)
echo $"Usage: $0 {start|stop|status}"
exit 1
esac

exit 0

Я его обозвал cs и зашвырнул в /etc/init.d, не забыв при этом сделать исполняемым:
Код
chmod 777 cs

Теперь давайте разберёмся, как он работает.


Код
CS_HOME=/opt/hlds

Этой переменной мы присваиваем путь к родительскому каталогу cstrike. У меня он лежит в /opt/hlds

Код
CS_START=$CS_HOME/cs_start.sh

Здесь же, в родительском каталоге cstrike создаём скрипт запуска:
Код
vi /opt/hlds/cs_start.sh

Жмём клавишу Insert и пишем:
Код
#/bin/bash/
cd /opt/hlds

export LD_LIBRARY_PATH=/opt/hlds:$LD_LIBRARY_PATH

./hlds_run -game cstrike +ip ваш_IP +port ваш_порт +maxplayers 32 > /dev/null 2>&1 &
(для i686-систем последнюю строчку заменяем на './hlds_run -binary ./hlds_i686 -game cstrike +ip ваш_IP +port ваш_порт +maxplayers 32 > /dev/null 2>&1 &')
Жмём клавишу Esc, пишем:
Код
:wq

Жмём Enter

Код
CS_STOP=$CS_HOME/cs_stop.sh

Опять же, в родительском каталоге cstrike создаём скрипт стопа:
Код
vi /opt/hlds/cs_stop.sh

со следующим содержимым:
Код
killall hlds_run
killall hlds_amd
killall hlds_i686


Код
CS_USER=hlds

Юзер, от имени которого будет запускаться наш демон. Если запускаете не от рута (ибо от рута запускать не комильфо), не забудьте дать права на весь каталог hlds:
Код
cd /opt
chown -R hlds:hlds hlds


Всё. Теперь для запуска набираем команду:
Код
service cs start


Для вывода состояния (запущен ли?) сервера:
Код
service cs status


Для остановки:
Код
service cs stop


Отредактировал: Predator.Cat, - 18.6.2011, 1:02
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   Цитировать сообщение
Статус пользователя bravo
сообщение 25.3.2011, 23:51
Сообщение #2


Стаж: 14 лет

Сообщений: 2650
Благодарностей: 865
Полезность: 879

Меценат Меценат

А чем это не понравилось?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Predator.Cat
сообщение 26.3.2011, 1:33
Сообщение #3


Стаж: 10 лет

Сообщений: 251
Благодарностей: 33
Полезность: 119

Цитата(bravo @ 26.3.2011, 0:51) *
А чем это не понравилось?

Вероятно, этим.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Serj
сообщение 26.3.2011, 8:38
Сообщение #4


Стаж: 10 лет

Сообщений: 855
Благодарностей: 266
Полезность: 198

Цитата(Predator.Cat @ 26.3.2011, 1:33) *
Вероятно, этим.

На центе тот скрипт работает потому на шапке тоже работать должен. А то, что тот скрипт не запускал у тебя сервер, может быть обусловлено тем, что не верно выставлены права/владелец на скрипт/файлы запуска.

Отредактировал: serejka, - 26.3.2011, 8:38
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Predator.Cat
сообщение 26.3.2011, 12:41
Сообщение #5


Стаж: 10 лет

Сообщений: 251
Благодарностей: 33
Полезность: 119

serejka,, у меня как раз CentOS. И дело не в правах, потому как я пробовал и от рута.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Justify
сообщение 18.6.2011, 11:37
Сообщение #6


Стаж: 10 лет

Сообщений: 313
Благодарностей: 97
Полезность: 260

Нету
/etc/init.d/functions
=\

.: 14: Can't open /etc/init.d/functions

повторюсь - у меня юбунтя 9.10

Отредактировал: Justify, - 18.6.2011, 11:38


!
Аккаунт пользователя заблокирован до: 4.6.4749, 19:38
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Predator.Cat
сообщение 18.6.2011, 13:14
Сообщение #7


Стаж: 10 лет

Сообщений: 251
Благодарностей: 33
Полезность: 119

Justify, а дальше что происходит?
В прочем, с убунтой вряд ли помогу, никогда с ней не работал.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Justify
сообщение 18.6.2011, 13:19
Сообщение #8


Стаж: 10 лет

Сообщений: 313
Благодарностей: 97
Полезность: 260

Цитата(Predator.Cat @ 18.6.2011, 14:14) *
Justify, а дальше что происходит?
В прочем, с убунтой вряд ли помогу, никогда с ней не работал.

а что поставить тогда?


!
Аккаунт пользователя заблокирован до: 4.6.4749, 19:38
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Predator.Cat
сообщение 18.6.2011, 13:26
Сообщение #9


Стаж: 10 лет

Сообщений: 251
Благодарностей: 33
Полезность: 119

Цитата(Justify @ 18.6.2011, 15:19) *
а что поставить тогда?

Это уж сам решай. Но я бы посоветовал CentOS или какой-нибудь другой RedHat-подобный дистрибутив, например Fedora.
Кому-то, например, Debian будет больше по душе, но про него ничего сказать не могу, ибо не знаю.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Justify
сообщение 18.6.2011, 15:02
Сообщение #10


Стаж: 10 лет

Сообщений: 313
Благодарностей: 97
Полезность: 260

Цитата(Predator.Cat @ 18.6.2011, 14:26) *
Это уж сам решай. Но я бы посоветовал CentOS или какой-нибудь другой RedHat-подобный дистрибутив, например Fedora.
Кому-то, например, Debian будет больше по душе, но про него ничего сказать не могу, ибо не знаю.

А у вас что стоит?


!
Аккаунт пользователя заблокирован до: 4.6.4749, 19:38
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Predator.Cat
сообщение 18.6.2011, 16:16
Сообщение #11


Стаж: 10 лет

Сообщений: 251
Благодарностей: 33
Полезность: 119

Justify, CentOS 5.6
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Justify
сообщение 18.6.2011, 18:08
Сообщение #12


Стаж: 10 лет

Сообщений: 313
Благодарностей: 97
Полезность: 260

Цитата(Predator.Cat @ 18.6.2011, 17:16) *
Justify, CentOS 5.6

ну что же. тогда мне остается поставить ту же систему и тестить её. я могу надеяться на вашу помощь ?


!
Аккаунт пользователя заблокирован до: 4.6.4749, 19:38
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Predator.Cat
сообщение 18.6.2011, 18:13
Сообщение #13


Стаж: 10 лет

Сообщений: 251
Благодарностей: 33
Полезность: 119

Justify,, ну, что вспомню, подскажу.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Justify
сообщение 18.6.2011, 19:34
Сообщение #14


Стаж: 10 лет

Сообщений: 313
Благодарностей: 97
Полезность: 260

sh: uncompress: команда не найдена
tar: Это не похоже на tar-архив
tar: Выход, отложенный по результатам предыдущих ошибок
выдало при запуске хлдсапдейт тул (

Может проще в скайпе ?
Добавляйтесь
freemanerik


Устранил!
с помощью
yum install ncompress

Отредактировал: Justify, - 18.6.2011, 20:16


!
Аккаунт пользователя заблокирован до: 4.6.4749, 19:38
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Predator.Cat
сообщение 18.6.2011, 20:47
Сообщение #15


Стаж: 10 лет

Сообщений: 251
Благодарностей: 33
Полезность: 119

Justify,, вот видишь? Всё просто =)
Честно говоря, я ставил готовый сервер, поэтому, hldsupdatetool не запускал. Но архиваторы и компилляторы нужно ставить в первую очередь после установи системы (если их нет в наборе).
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Justify
сообщение 18.6.2011, 21:00
Сообщение #16


Стаж: 10 лет

Сообщений: 313
Благодарностей: 97
Полезность: 260

Цитата(Predator.Cat @ 18.6.2011, 21:47) *
Justify,, вот видишь? Всё просто =)
Честно говоря, я ставил готовый сервер, поэтому, hldsupdatetool не запускал. Но архиваторы и компилляторы нужно ставить в первую очередь после установи системы (если их нет в наборе).

Дело в том что я дерево - держу Юникс систему в руках впервые ..


!
Аккаунт пользователя заблокирован до: 4.6.4749, 19:38
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Predator.Cat
сообщение 18.6.2011, 21:06
Сообщение #17


Стаж: 10 лет

Сообщений: 251
Благодарностей: 33
Полезность: 119

Justify,, ну, всё бывает в первый раз) К тому же, существует такая замечательная вещь, как Великий Гугл, который не раз выручал меня в подобных ситуациях.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Justify
сообщение 18.6.2011, 21:58
Сообщение #18


Стаж: 10 лет

Сообщений: 313
Благодарностей: 97
Полезность: 260

Ну вот вроде как запустил.... но как в консоль сервера добратсо ?


!
Аккаунт пользователя заблокирован до: 4.6.4749, 19:38
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Predator.Cat
сообщение 18.6.2011, 22:03
Сообщение #19


Стаж: 10 лет

Сообщений: 251
Благодарностей: 33
Полезность: 119

Justify,, а зачем? Можно ведь прописать все необходимые параметры в скрипте запуска, либо в конфиге. А в реальном времени можно менять переменные из клиента через amxmodmenu.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Justify
сообщение 18.6.2011, 22:06
Сообщение #20


Стаж: 10 лет

Сообщений: 313
Благодарностей: 97
Полезность: 260

Цитата(Predator.Cat @ 18.6.2011, 23:03) *
Justify,, а зачем? Можно ведь прописать все необходимые параметры в скрипте запуска, либо в конфиге. А в реальном времени можно менять переменные из клиента через amxmodmenu.

ну так вот пока я не могу тестить свой сервер (чтоб менять всё в амхмодменю). я больше верю в консоль. пишу service cs_pub (так я его назвал) status
и получаю какуюто чушь ..

Отредактировал: Justify, - 18.6.2011, 22:13


!
Аккаунт пользователя заблокирован до: 4.6.4749, 19:38
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
2 страниц V   1 2
 
Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: