URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID15
Нить номер: 2689
[ Назад ]

Исходное сообщение
"Автозагрузка в debian"

Отправлено Fen1ks , 28-Июл-09 18:53 
Написал скрипт, который запускает сервер по кс 1.6 .

#/bin/bash/
export LD_LIBRARY_PATH=/home/Server/Cs/pub/start_pub.sh
./hlds_run -game cstrike -nomaster -sv_lan 0 -moipx +port 27015 +log on +map de_dust2 +maxplayers 16 +exec server.cfg

Теперь задача запихнуть его в автозагрузку.

В дебиане на сколько мне известно, чтоб сделать загрузку какого либо процесса надо написать скрипт в папке /etc/init.d . Там прочитал readme и вроде по правилам создал скрипт там:

#! /bin/sh
### BEGIN INIT INFO
# Provides:          pub
# Description:       Zapyskaet public server na debian
#/bin/bash/
export LD_LIBRARY_PATH=/home/Server/Cs/pub/start_pub.sh
./hlds_run -game cstrike -nomaster -sv_lan 0 -noipx +port 27015 +log on +map de_dust2 +maxplayers 16 +exec server.cfg

В чём может быть проблема?


Содержание

Сообщения в этом обсуждении
"Автозагрузка в debian"
Отправлено nexus86 , 28-Июл-09 20:14 
>[оверквотинг удален]
># Provides:          pub
>
># Description:       Zapyskaet public server na
>debian
>#/bin/bash/
>export LD_LIBRARY_PATH=/home/Server/Cs/pub/start_pub.sh
>./hlds_run -game cstrike -nomaster -sv_lan 0 -noipx +port 27015 +log on +map
>de_dust2 +maxplayers 16 +exec server.cfg
>
>В чём может быть проблема?

а ты прописал chmod a+x имя скрипта?


"Автозагрузка в debian"
Отправлено Fen1ks , 29-Июл-09 12:14 
>[оверквотинг удален]
>># Description:       Zapyskaet public server na
>>debian
>>#/bin/bash/
>>export LD_LIBRARY_PATH=/home/Server/Cs/pub/start_pub.sh
>>./hlds_run -game cstrike -nomaster -sv_lan 0 -noipx +port 27015 +log on +map
>>de_dust2 +maxplayers 16 +exec server.cfg
>>
>>В чём может быть проблема?
>
>а ты прописал chmod a+x имя скрипта?

Я прописал "shmod +x" , аргумента "а" я не нашёл в описании команды.


"Автозагрузка в debian"
Отправлено Sarge , 28-Июл-09 20:23 
>[оверквотинг удален]
># Provides:          pub
>
># Description:       Zapyskaet public server na
>debian
>#/bin/bash/
>export LD_LIBRARY_PATH=/home/Server/Cs/pub/start_pub.sh
>./hlds_run -game cstrike -nomaster -sv_lan 0 -noipx +port 27015 +log on +map
>de_dust2 +maxplayers 16 +exec server.cfg
>
>В чём может быть проблема?

1) укажите полный путь к файлу hlds_run, относительные пути в скриптах не рулят.
2) скрипт должен поддерживать параметры start и stop (не обязательно, но желательно).
3) нужно создать симлинк на этот скрипт и положить его в /etc/rc2.d (цифра обозначает runlevel, который по умолчанию в дебиане =2; но можно проверить текущий командой runlevel). Сам симлинк должен называться Snnимя_скрипта, где nn - цифры (порядковый номер для запуска скрипта).


"Автозагрузка в debian"
Отправлено Fen1ks , 29-Июл-09 12:11 
>1) укажите полный путь к файлу hlds_run, относительные пути в скриптах не
>рулят.
>2) скрипт должен поддерживать параметры start и stop (не обязательно, но желательно).
>
>3) нужно создать симлинк на этот скрипт и положить его в /etc/rc2.d
>(цифра обозначает runlevel, который по умолчанию в дебиане =2; но можно
>проверить текущий командой runlevel). Сам симлинк должен называться Snnимя_скрипта, где nn
>- цифры (порядковый номер для запуска скрипта).

1) переписал скрипт:

#! /bin/sh - поправилам обязательно должна быть. Только для чего это нужно я до конца не понял.
exho Counter-Strike Public server started - сообщение о том что сервер стартанул
GAMEZCAT=/home/Server - Я так понял мы присваиваем переменной GAMEZCAT путь к серверу
export GAMEZCAT - для чего экспортировать его опять таки я не понял до конца
LOAD_PATH=$GAMEZCAT/Cs/pub:$LOAD_PATH - LOAD_PATH это библиотека тоже используется на сколько я понял для временного хранения пути. Но для чего так замудренно я не понял если честно.
export LOAD_PATH
hlds_run -game cstrike -nomaster -sv_lan 0 -noipx +port 27015 +log on +map de_dust2 +maxplayers 16 +exec server.cfg - ну это правила по которым стартует сервер.

забрал это всё отсюда http://www.opennet.me/base/sys/game_server.txt.html
но доконца работу скрипта не понял. если не трудно не мог ли б вы объяснить.

2) как приблизительно можно вписать эти параметры? чтоб завершить процесс я в консоли набирал exit. Чтоб стартовать просто запускал скрипт:

start_pub.sh который находиться в корне сервера

#/bin/bash/
./hlds_run -game cstrike -nomaster -sv_lan 0 -moipx +port 27015 +log on +map de_dust2 +maxplayers 16 +exec server.cfg

Смотрел скрипты в папке init.d но там во многих случаях старт и стоп делается одной командой.

3) Snnимя_скрипта, где nn цифры (порядковый номер для запуска скрипта).

Есть ли ограничения по номеру, там предположим 1203?И как я понял можно использовать любой свободный, номер?
Я сделал так ln -s /etc/init.d/pub.sh /etc/rc2.d/S40pub


Сервер не запускается!


"Автозагрузка в debian"
Отправлено Fen1ks , 29-Июл-09 13:18 
переписал ещё раз скрипт:

echo Counter-Strike Public server started
GAMEZCAT=/home/Server
export GAMEZCAT
LOAD_PATH=$GAMEZCAT/Cs/pub/:$LOAD_PATH
export LOAD_PATH
./hlds_run -game cstrike -nomaster -sv_lan 0 -noipx +port 27015 +log on +map de_dust2 +maxplayers 16 +exec server.cfg

пишет /hlds_run нетак такого файла или папки

но он находитсья по адресу /home/Server/Cs/pub/. Я думал может из-за того что нету косой черты, но поставил её и результат тот же.


"Автозагрузка в debian"
Отправлено gaa , 29-Июл-09 20:44 
>./hlds_run -game cstrike -nomaster -sv_lan 0 -noipx +port 27015 +log on +map
>de_dust2 +maxplayers 16 +exec server.cfg
>пишет /hlds_run нетак такого файла или папки
>но он находитсья по адресу /home/Server/Cs/pub/. Я думал может из-за того что
>нету косой черты, но поставил её и результат тот же.

потому что команда запускается не в /home/Server/Cs/pub/. осиль команду cd или укажи полный путь.


"Автозагрузка в debian"
Отправлено gaa , 29-Июл-09 04:01 
>export LD_LIBRARY_PATH=/home/Server/Cs/pub/start_pub.sh

Это что ещё за хня?

>В чём может быть проблема?

Почитай что такое system v init, а потом создай в /etc/rc[0-9S].d/ (в зависимости от нужного тебе ранлевела) симлинк на скрипт в /init.d с именем вида S[0-9][0-9]blahblah.


"Автозагрузка в debian"
Отправлено Fen1ks , 29-Июл-09 12:17 
>>export LD_LIBRARY_PATH=/home/Server/Cs/pub/start_pub.sh
>
>Это что ещё за хня?
>
>>В чём может быть проблема?
>
>Почитай что такое system v init, а потом создай в /etc/rc[0-9S].d/ (в
>зависимости от нужного тебе ранлевела) симлинк на скрипт в /init.d с
>именем вида S[0-9][0-9]blahblah.

спс за  system v init, уже читаю.


"Автозагрузка в debian"
Отправлено Andrey Mitrofanov , 29-Июл-09 19:07 
>спс за  system v init, уже читаю.

Отл! Also: man update-rc.d + less /etc/init.d/skeleton


"Автозагрузка в debian"
Отправлено angra , 29-Июл-09 22:35 
А можно плюнуть на кошерность и изменить /etc/rc.local :)

"Автозагрузка в debian"
Отправлено Fen1ks , 19-Авг-09 11:48 
>А можно плюнуть на кошерность и изменить /etc/rc.local :)

Сделал так.

cd /home/Server/Cs/pub

Screen -A -m -d -S pub ./hdls_run -game cstrike +sv_lan 0 -insecure +ip 217.79.0.63 +port 27015 +map de_dust2 +log on +maxplayers 16 +exec server.cfg
exit 0

Для работы через screen:
#screen -ls получаем список запущенных окон
#screen -r чтоб подключиться к отключённому сеансу (ключи -m -d запускают сеанс в отлючённом режиме)Если у вас несколько сеансов можт понадобиться ввести номер.имя сеанса
Ctrl+a d чтоб отключить screen от этого терминала.

более подробно про screen советую читать тут:
http://xgu.ru/wiki/man:screen - переведённый man