Написал скрипт, который запускает сервер по кс 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В чём может быть проблема?
>[оверквотинг удален]
># 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 имя скрипта?
>[оверквотинг удален]
>># 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" , аргумента "а" я не нашёл в описании команды.
>[оверквотинг удален]
># 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 - цифры (порядковый номер для запуска скрипта).
>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
Сервер не запускается!
переписал ещё раз скрипт: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/. Я думал может из-за того что нету косой черты, но поставил её и результат тот же.
>./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 или укажи полный путь.
>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.
>>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, уже читаю.
>спс за system v init, уже читаю.Отл! Also: man update-rc.d + less /etc/init.d/skeleton
А можно плюнуть на кошерность и изменить /etc/rc.local :)
>А можно плюнуть на кошерность и изменить /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