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

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

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

14-дек
24-апр
10-апр
11-апр

14 страниц V  « 8 9 10 ... 12 13 »

Удобный скрипт запуска сервера кс :)

Статус пользователя Akushi
сообщение 2.8.2012, 5:53
Сообщение #161


Стаж: 16 лет

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

Как в gentoo засунуть в автозагрузку при включений, этот скрипт? Не чего не выходит... sad.gif

Как в gentoo засунуть в автозагрузку при включений, этот скрипт? Не чего не выходит... sad.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 330863
сообщение 2.8.2012, 10:02
Сообщение #162


Стаж: 16 лет

Сообщений: 4358
Благодарностей: 1079
Полезность: 497

Akushi,
переписать под Openrc и потом уже rc-update add blablabla default
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя limited
сообщение 2.8.2012, 11:46
Сообщение #163


Стаж: 16 лет

Сообщений: 60
Благодарностей: 16
Полезность: 207

Может и не в тему, но при использование этого скрипта у меня иногда зависал серв..
А при использовании это скрипта подобного не наблюдал
Сам скрипт
#!/bin/sh
VERSION="0.6"

if [ "$1" = "-v" ] || [ "$1" = "--version" ] ; then
echo $VERSION
exit
fi

if [ "$CALLED" = "" ]; then
#remember your current position
CURRENT_DIR=`pwd -L`
#scripts path
SCRIPT_PATH=`echo $0|rev|awk '{print substr($1,index($1,"/"))}'|rev`
fi
cd $SCRIPT_PATH
#variable to set server check time
CHECK_TIME=60

#variable to set server pidfile name
PIDFILE="hlds.pid"

#restarter pidfile name default restarter.pid
RESTARTER_PIDFILE="restarter.pid"

#variable storing runscript
RUN_SCRIPT="screen -A -m -d ./hlds_run -game cstrike +ip 127.0.0.1 +maxplayers 32 -sys_ticrate 1000 -pingboost 1.2.3 +map de_dust2 -binary ./hlds_i686 +sv_lan 0 -norestart -pidfile ./${PIDFILE} +port 27015"

#File for logging errors and other default : restarter.log

LOG_FILE="restarter.log"

#script running first time
FIRST_RUN=1

#defining all very often calling commands

start_server()
{
while (true)
do
if [ -e ${PIDFILE} ] ; then
if [ $(ps -p $(cat ${PIDFILE})|wc -l) = "1" ] ; then restart_server
fi
else restart_server
fi
sleep ${CHECK_TIME}
done
}

finish_server()
{
if [ "${TTY}" = "" ] ; then
TTY=`cat restarter.tmp`
rm restarter.tmp
fi
if [ -e ${PIDFILE} ]; then
PID=`cat ${PIDFILE}`
fi
echo "Wait for full stop of server">${TTY}
if [ $(ps -p $(cat ${PIDFILE})|wc -l) = "1" ] ; then
echo "Server was finished">${TTY}
rm ${PIDFILE}
rm ${RESTARTER_PIDFILE}
exit
else
kill -3 ${PID}
sleep 10
finish_server
fi
}

restart_server()
{
if [ "${FIRST_RUN}" = 1 ] ; then
FIRST_RUN=0
$(${RUN_SCRIPT}) >>/dev/null
echo "Please wait for full start of server">>${TTY}
sleep 30
if [ -e ${PIDFILE} ] ; then echo "Server was started successfully!">${TTY} ; fi
else
MESSAGE="Server was restarted after crash"
echo $(date "+%x %X") $MESSAGE >> ${LOG_FILE}
$(${RUN_SCRIPT}) >>/dev/null
fi
trap 'INCLUDED="1"; . $0 ; finish_server ' 2 3
}

start_restarter()
{
export CALLED="1"
export TTY=`tty`
export SCRIPT_PATH=${SCRIPT_PATH}
screen -A -m -d sh `basename $0`>>/dev/null
}

stop_restarter()
{
echo `tty`>restarter.tmp
kill -3 `cat ${RESTARTER_PIDFILE}`
echo "Successfuly stopped server"
}

start()
{
if [ -e ${RESTARTER_PIDFILE} ] ; then
if [ `ps -p $(cat ${RESTARTER_PIDFILE})|wc -l` = "1" ]; then start_restarter
else
echo "Server already running! (pid=`cat ${RESTARTER_PIDFILE}`)"
fi
else start_restarter
fi
}

restart()
{
if [ -e ${RESTARTER_PIDFILE} ] && [ `ps -p $(cat ${RESTARTER_PIDFILE})|wc -l` = "2" ]; then
stop_restarter
start_restarter
else echo "Can't restart: server not running!"
fi
}

stop()
{
if [ -e ${RESTARTER_PIDFILE} ] && [ `ps -p $(cat ${RESTARTER_PIDFILE})|wc -l` = "2" ] ; then
stop_restarter
else echo "Can't stop: server not running!"
fi
}

status()
{
if [ -e ${PIDFILE} ] && [ $(ps -p $(cat ${PIDFILE})|wc -l) = "2" ] ; then
echo "hlds running as pid $(cat ${PIDFILE})"
else echo "hlds not running"
fi
exit
}

if [ "${INCLUDED}" = "" ] ; then
if [ "${CALLED}" = "1" ] ; then
echo $$ > ${RESTARTER_PIDFILE}
start_server
else
if [ "$1" = "" ] ; then start
else
PARAMETER="`echo $1|tr [:upper:] [:lower:]`"
if [ ${PARAMETER} = "start" ] ; then start
elif [ ${PARAMETER} = "stop" ] ; then stop
elif [ ${PARAMETER} = "restart" ] ; then restart
elif [ ${PARAMETER} = "status" ] ; then status
fi
fi
fi
fi

#then return to previous location
cd ${CURRENT_DIR}

Возможно кто-то выкладывал его, или подобие, честно не в курсе.

Скрипт хороший, а главное удобный но эти зависы на 5-10 сек sad.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Akushi
сообщение 2.8.2012, 12:50
Сообщение #164


Стаж: 16 лет

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

Цитата(330863 @ 2.8.2012, 14:02) *
Akushi,
переписать под Openrc и потом уже rc-update add blablabla default

Поможешь? happy.gif happy.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
arsen-stalker :J
сообщение 2.8.2012, 13:09
Сообщение #165
Стаж: 13 лет

Сообщений: 3
Благодарностей: 2
Полезность: 0

Цитата(Akushi @ 1.8.2012, 23:50) *
Поможешь? happy.gif happy.gif

Там все легко :D. Просто нужно создать файл к примеру hlds.start с содержанием таким, к примеру как у меня
Мой hlds.start
#!/bin/sh
cd /home/ftp/./hlds/
./hlds_run -game cstrike +ip 0.0.0.0 +port 27015 +maxplayers 24 +map de_dust2_2x2

Далее закинуть этот файл в директорию: /etc/local.d/ делаешь reboot и готово!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя 330863
сообщение 3.8.2012, 22:58
Сообщение #166


Стаж: 16 лет

Сообщений: 4358
Благодарностей: 1079
Полезность: 497

arsen-stalker :J,
отличный метод но изврат)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 3aB}{o3
сообщение 20.8.2012, 8:13
Сообщение #167


Стаж: 18 лет

Сообщений: 2145
Благодарностей: 825
Полезность: 521

330863, вопрос такой, при команде ./server.sh restart в консоле пишет следующие :
Цитата
Cannot kill hlds process of Public server
данная ошибка серьезная и можно ее как то исправить ? Спасибо
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Padwiy_Angel
сообщение 20.8.2012, 12:52
Сообщение #168


Стаж: 17 лет

Сообщений: 5
Благодарностей: 1
Полезность: 0

Цитата(3aB}{o3 @ 20.8.2012, 8:13) *
330863, вопрос такой, при команде ./server.sh restart в консоле пишет следующие :
данная ошибка серьезная и можно ее как то исправить ? Спасибо

Сервер запущен когда выполняешь команду? Пользователь от которого запущен сервер и скрипт один?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 3aB}{o3
сообщение 20.8.2012, 13:57
Сообщение #169


Стаж: 18 лет

Сообщений: 2145
Благодарностей: 825
Полезность: 521

Цитата(Padwiy_Angel @ 20.8.2012, 14:52) *
Сервер запущен когда выполняешь команду? Пользователь от которого запущен сервер и скрипт один?

Конечно же запущен, каждому серверу свой скрипт запуска, так же свой пользователь
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Padwiy_Angel
сообщение 21.8.2012, 13:26
Сообщение #170


Стаж: 17 лет

Сообщений: 5
Благодарностей: 1
Полезность: 0

Цитата(3aB}{o3 @ 20.8.2012, 14:57) *
Конечно же запущен, каждому серверу свой скрипт запуска, так же свой пользователь

создаются ли .pid файлы при запуске сервера?
Попробуй убить вручную kill -9 №pid или pkill -9 -f Public server
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 3aB}{o3
сообщение 24.8.2012, 16:32
Сообщение #171


Стаж: 18 лет

Сообщений: 2145
Благодарностей: 825
Полезность: 521

330863, зачем нужно qstat кидать в bin/ если при установке qstat есть /usr/bin/quakestat
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Screed
сообщение 24.8.2012, 16:34
Сообщение #172
Стаж: 13 лет

Сообщений: 150
Благодарностей: 28
Полезность: 0

Цитата(330863 @ 3.8.2012, 23:58) *
arsen-stalker :J,
отличный метод но изврат)

Подскажи, какой еще метод есть. Моим методом только один сервер запускается, мне нужно несколько, объясни на примерах как.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 330863
сообщение 24.8.2012, 16:51
Сообщение #173


Стаж: 16 лет

Сообщений: 4358
Благодарностей: 1079
Полезность: 497

3aB}{o3,
будешь использовать чтото кроме копеекОС будешь знать что не во всех дистрибутивах quakestat зовётся подругому, именно бинарник

Screed,
метод хорош на худой конец, но при падений сервера или остановке, небудет выгодным перезапускать все сервы, тоесть /etc/init.d/local restart
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Screed
сообщение 24.8.2012, 16:54
Сообщение #174
Стаж: 13 лет

Сообщений: 150
Благодарностей: 28
Полезность: 0

Цитата(330863 @ 24.8.2012, 17:51) *
3aB}{o3,
будешь использовать чтото кроме копеекОС будешь знать что не во всех дистрибутивах quakestat зовётся подругому, именно бинарник

Screed,
метод хорош на худой конец, но при падений сервера или остановке, небудет выгодным перезапускать все сервы, тоесть /etc/init.d/local restart

А у меня еще какой-то скрипт стоит, при падении. Он перезапускает сервер. Ты мне подскажи, как мне сделать , чтобы несколько серверов загружал, хоть и добавляю другой файл в эту папку, все ровно загружается по алфавиту.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 3aB}{o3
сообщение 24.8.2012, 16:57
Сообщение #175


Стаж: 18 лет

Сообщений: 2145
Благодарностей: 825
Полезность: 521

после установки qstat и выполнения команды ./script.sh status :
Цитата
sudo: /bin/qstat: command not found


Цитата(330863 @ 24.8.2012, 18:51) *
3aB}{o3,
будешь использовать чтото кроме копеекОС будешь знать что не во всех дистрибутивах quakestat зовётся подругому, именно бинарник

значит твой скрипт для меня нужно просто отредактировать ли что ? я что-то не понял ... за место bin/qstat можно использовать /usr/bin/quakestat ?

Ну так что мне делать то ? qstat установлен, команда status не работает:
Цитата
sudo: /bin/qstat: command not found


Отредактировал: 3aB}{o3, - 24.8.2012, 17:05
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Cracky
сообщение 24.8.2012, 17:25
Сообщение #176


Стаж: 15 лет

Сообщений: 768
Благодарностей: 197
Полезность: 506

Цитата(3aB}{o3 @ 24.8.2012, 16:32) *
330863, зачем нужно qstat кидать в bin/ если при установке qstat есть /usr/bin/quakestat

сделай симлинк и не мучайся
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя vladsol
сообщение 24.8.2012, 17:32
Сообщение #177
Стаж: 17 лет

Сообщений: 588
Благодарностей: 87
Полезность: 161

3aB}{o3,
Цитата
сделай симлинк и не мучайся

Типа ln -s /usr/bin/quakestat /usr/bin/qstat


Ну это я так, на всякий случай... dntknw.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя 330863
сообщение 24.8.2012, 17:39
Сообщение #178


Стаж: 16 лет

Сообщений: 4358
Благодарностей: 1079
Полезность: 497

Цитата(Screed @ 24.8.2012, 17:54) *
А у меня еще какой-то скрипт стоит, при падении. Он перезапускает сервер. Ты мне подскажи, как мне сделать , чтобы несколько серверов загружал, хоть и добавляю другой файл в эту папку, все ровно загружается по алфавиту.

hlds_run

3aB}{o3,
поменяй в файле или делай симлинк, господи

Отредактировал: 330863, - 24.8.2012, 17:39
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя 3aB}{o3
сообщение 24.8.2012, 17:47
Сообщение #179


Стаж: 18 лет

Сообщений: 2145
Благодарностей: 825
Полезность: 521

Сменил
Код
checker_cmd="/bin/qstat"
на
Код
checker_cmd="/usr/bin/quakestat"
это будет достаточно ?

Отредактировал: 3aB}{o3, - 24.8.2012, 17:47
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 330863
сообщение 24.8.2012, 18:23
Сообщение #180


Стаж: 16 лет

Сообщений: 4358
Благодарностей: 1079
Полезность: 497

3aB}{o3,
ДААААААААААААААААААААААААААААААААААААА :D
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
14 страниц V  « 8 9 10 ... 12 13 »
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: