Скрипт запуска. |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
|
Скрипт запуска. |
mclaren
|
21.8.2010, 19:53
Сообщение
|
![]() |
Я найду дела поважнее споров с детьми. Больше всего меня убивало когда на мой ответ другого человека, тот пишет подобную ахинею "споры с детьми", " ты ребенок", "иди учись в школу" и так далее... Я то не обращаю внимание на это, но просто поражало то, что человек не зная меня вообще, пишет что я ребенок...так поступает только глупый и полный гонора, в данном случае парень. Приятного чаепития, не поперхнись умник.
Отредактировал: mclaren, - 21.8.2010, 19:53
|
Поблагодарили 2 раз
|
|
330863
|
22.8.2010, 0:35
Сообщение
|
![]() |
Mzerder,
ты меня спрашивал как распределить сервы по ядрам а шас выёбываешься и стройш из себя умного |
|
|
|
mclaren
|
22.8.2010, 16:30
Сообщение
|
![]() |
330863,
Да чего на него внимания обращать. Я уже видел и другую тему, где он очередного пользователя именует как и меня здесь - "ребенком". А по поводу скрипта, подскажет кто, в чем проблема? OS Gentoo Linux. |
|
|
|
330863
|
23.8.2010, 10:32
Сообщение
|
![]() |
330863, Да чего на него внимания обращать. Я уже видел и другую тему, где он очередного пользователя именует как и меня здесь - "ребенком". А по поводу скрипта, подскажет кто, в чем проблема? OS Gentoo Linux. я вот етот использую на данный момент ,но с небольшими поправками =) тут #!/bin/bash ### BEGIN INIT INFO # Provides: hlds # Required-Start: $syslog $local_fs $network # Required-Stop: $syslog $local_fs $network # Should-Start: $remote_fs $named # Should-Stop: $remote_fs $named # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start HLDS Server # Description: HLDS Start Script # # author: LeXiKoN http://eqline.ru # version: 0.92 # ### END INIT INFO # Source function library. . /lib/lsb/init-functions VERSION=0.92 ##################################################### # Конфигурирование ##################################################### SERVER_NAME="" #Название сервера screen_name=cwserver #Название screen-сессии path="" #Путь до ROOT-директории сервера hlds_ip= #IP сервера hlds_port=27015 #Порт сервера hlds_gametype=cstrike #Тип игры hlds_players=13 #Максимальное количество игроков на сервере hlds_map=de_dust2 #Имя первоначальной карты при запуске hlds_pid=server.pid screen_pid=$screen_name-screen.pid hlds_options="-binary ./hlds_i686 -pingboost 1 -noipx +exec server.cfg" #Дополнительные параметры запуска use_user= #Имя юзера от которого запускается сервер condebug=1 check_version=0 checker_command="quakestat" #Команда пакета qStat отвечающего за проверку сервера #---------------------------------------------------- # Номер ядра/процессора в линуксе # 2х-ядерные: 0 - первое ядро, 1 - второе ядро # 4x-ядерные: 0 - первое ядро ... 3 - четвертое ядро # По аналогии с другими многоядерными процессорами use_core=0 #---------------------------------------------------- ################# ВНИМАНИЕ ################### # # Строчки ниже, если не знаете, лучше не трогать! # ################# ВНИМАНИЕ ################### RETVAL=0 succes="[\033[1;32m ОК \033[0m]" failed="[\033[1;31m FAIL \033[0m]" status_on="[\033[1;32m Online \033[0m]" status_off="[\033[1;31m Offline \033[0m]" title="\033[1;34m [::]\033[0m" if [ $condebug = 1 ]; then hlds_options2="-condebug" fi # Команда screen INTR="taskset -c $use_core /usr/bin/screen -A -m -d -S $screen_name" if [ ! -x $path/hlds_run ]; then printf "\033[22;31m Проверьте права на исполнение hlds_run \033[0m\n" exit 1 fi prestart_check() { if [ -f $path/$hlds_pid ] && [ -f $path/$screen_pid ]; then ch=`ps -ef | grep SCREEN | grep $screen_name` if [ -n "$ch" ]; then echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "\033[1;34m Сервер $SERVER_NAME\033[0m \033[32m(!!) на данный момент УЖЕ работает (!!)\033[0m\n" echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit 1 else cd $path rm -rf $path/$screen_pid rm -rf $path/$hlds_pid fi fi } start() { if [ $check_version = 1 ]; then check_version fi # Проверка престартовая prestart_check echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cd $path $INTR sudo -u $use_user ./hlds_run -game $hlds_gametype +maxplayers $hlds_players +map $hlds_map +ip $hlds_ip +port $hlds_port $hlds_options $hlds_options2 -pidfile $hlds_pid # Поиск и запись пидов процессов сервера и скринв системе ps -ef | grep SCREEN | grep "$screen_name" | grep -v grep | awk '{ print $2}' > $path/$screen_pid printf "$title\033[1;34m Запуск сервера $SERVER_NAME \033[0m\n" printf "\033[1;35m Порт севрера:\033[0m \033[1;36m$hlds_port\033[0m\n" printf "\033[1;35m Привязка к ядру:\033[0m \033[1;36m$use_core\033[0m\n" printf "\033[1;35m Запуск от юзера:\033[0m \033[1;36m$use_user\033[0m\n" printf "\033[1;33m Статус ~> \033[0m" sleep 1 if [ -f $path/$hlds_pid ] && [ -f $path/$screen_pid ]; then ch=`ps -ef | grep SCREEN | grep $screen_name` if [ -n "$ch" ]; then printf "%53s$succes \n" else printf "%53s$failed \n" fi fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } stop() { if [ $check_version = 1 ]; then check_version fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if [ -f $path/$hlds_pid ] && [ -f $path/$screen_pid ]; then # Извлекаем ID процесса из файла и увибаем процессы kill `cat $path/$hlds_pid` kill `cat $path/$screen_pid` sleep 1 rm -rf $path/$screen_pid rm -rf $path/$hlds_pid printf "$title\033[1;31m Остановка $SERVER_NAME \033[0m" printf "%33s$succes \n" else printf "\033[1;34m Невозможно остановить $SERVER_NAME, сервер НЕ запущен \033[0m" printf "%5s$failed \n" fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } status() { if [ $check_version = 1 ]; then check_version fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "$title\033[1;34m Статус сервера $SERVER_NAME \033[0m\n" printf "\033[1;35m Порт севрера:\033[0m \033[1;36m$hlds_port\033[0m\n" printf "\033[1;35m Привязка к ядру:\033[0m \033[1;36m$use_core\033[0m\n" printf "\033[1;35m Запуск от юзера:\033[0m \033[1;36m$use_user\033[0m\n" printf "\033[1;33m Статус ~> \033[0m" sleep 1 ch=`ps -ef | grep SCREEN | grep $screen_name` if [ -n "$ch" ]; then printf "%49s$status_on \n" else printf "%48s$status_off \n" fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } console() { if [ $check_version = 1 ]; then check_version fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if [ -f $path/$hlds_pid ] && [ -f $path/$screen_pid ]; then printf "$title\033[1;34m Подключение к консоли $SERVER_NAME сервера \033[0m\n" echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "\033[36m Для выхода из консоли поочерёдно нажать \033[1;36mCtrl+A, D \033[0m\n" printf "\033[36m Для листинга консоли поочерёдно нажать \033[1;36mCtrl+A, Esc \033[0m\n" printf "\033[36m Для выхода из режима листинга нажать \033[1;36mEsc \033[0m\n" printf "\033[1;31m Внимание!!! По неаккуратности можно положить сервер :D \033[0m\n" echo " Консоль включится через 5 секунд..." sleep 5 /usr/bin/screen -R $screen_name else printf "\033[1;31m Невозможно подключиться к $SERVER_NAME, сервер не запущен \033[0m\n" fi } compile() { if [ $check_version = 1 ]; then check_version fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if [ -d $path/cstrike/addons/amxmodx ]; then printf "\033[32m Компиляция плагинов AmxModX \033[0m\n" echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "\033[36m Компилируются исходные файлы (sma), находящиеся в директории {addons/amxmodx/scripting/*.sma} \033[0m\n" printf "\033[36m По завершению компиляции нажмите Q для выхода \033[0m\n" printf "\033[36m Компиляция начнется через 2 секунды. \033[0m\n" sleep 2 cd $path/cstrike/addons/amxmodx/scripting ./compile.sh echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "\033[32m Плагины скомпилированы \033[0m\n" else printf "\033[22;31m Проверьте установлен ли AmxModX (??) \033[0m\n" fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } check_version() { echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cd $path rm -f version.txt wget http://eqline.ru/project/hlds_init_script/version.txt 1> /dev/null 2>&1 sleep 1 for ver in `cat $path/version.txt` do if [ $VERSION \< $ver ]; then printf "\033[1;31m Доступна новая версия скрипта ( $ver )\033[0m\n" printf "\033[36m Подробнее на форуме eQline.ru: http://forum.eqline.ru \033[0m\n" printf "\033[1;36m Ссылка: http://forum.eqline.ru/topic/361-скрипт-за...-hlds-серверов/ \033[0m\n" else printf "\033[1;36m Ваша версия является последней\033[0m \033[1;34m( Текущая версия: $VERSION ) \033[0m\n" fi break done echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rm -f version.txt sleep 1 } checker() { checktag="[HLDS-CheckUP]" checkdown=`$checker_command -P -a2s $hlds_ip:$hlds_port | grep DOWN` if [ -n "$checkdown" ]; then printf "\033[1;37m$checktag\033[0m $SERVER_NAME \033[31m*[DOWN]*\033[0m\n" # echo Отсылаем почту cd $path time=`date +%X` date=`date +%D` inlog=`$checker_command -P -a2s $hlds_ip:$hlds_port | grep DOWN` printf "[$time - $date] *[DOWN]* $inlog\n" >> checker.log stop sleep 2 start sleep 1 echo ----------------ATTANTION---------------- >> checker.log printf "StartUP $SERVER_NAME:" >> checker.log ch=`ps -ef | grep SCREEN | grep $screen_name` if [ -n "$ch" ]; then printf " *[OK]* \n" >> checker.log else printf " *[FAILED]* \n" >> checker.log fi echo ----------------------------------------- >> checker.log exit 1 fi checkup=`$checker_command -P -a2s $hlds_ip:$hlds_port | grep cstrike` if [ -n "$checkup" ]; then printf "\033[1;37m$checktag\033[0m $SERVER_NAME \033[32m*[OK]*\033[0m\n" cd $path time=`date +%X` date=`date +%D` inlog=`quakestat -P -a2s $hlds_ip:$hlds_port | grep cstrike` printf "[$time - $date] *[OK]* $inlog\n" >> checker.log exit 1 fi } case "$1" in start) start ;; stop) stop ;; restart) stop sleep 2 start ;; status) status ;; console) console ;; compile) compile ;; checkUpdate) check_version ;; checker) checker ;; *) echo "Usage: $0 {start|stop|restart|status|console|compile|checkUpdate|checker}" exit 1 esac |
|
|
|
The_Razer
|
23.8.2010, 11:35
Сообщение
|
|
|
mclaren, Дело в том, что очень мало людей захотят копаться в чужом коде. Хочешь работающий скрипт - пиши сам с нуля. Я вообще не пользуюсь сервисами. Единственное, чем это плохо - при ребуте приходится самому запускать. С другой стороны хороший сервер должен быть всегда онлайн. Начинать писать скрипт можешь по этому примеру ( http://verlihub.aliki.ru/index.php?title=%...b_%D0%B2_Gentoo )
|
|
|
|
Katactrofa
|
24.8.2010, 13:56
Сообщение
|
![]() |
В общем говоря Katactrofa, не пашет он. У меня 2 сервера кв и паб. Запускаю этим скриптом - все норм... - скрипт который я выкладывал. - запускаем -)В Gentoo этой дериктории нету. Я так понимаю это etc/init.d/functions.sh Попробовал изменить, убрав при этом еще перед началом этой строки "." тогда стало все без ошибки работать, но сервер не запускается. Скрипт можно закинуть в любую дерикторию ололо
Отредактировал: Katactrofa, - 24.8.2010, 14:00
|
|
|
|
mclaren
|
25.8.2010, 12:45
Сообщение
|
![]() |
У меня 2 сервера кв и паб. Запускаю этим скриптом - все норм... - скрипт который я выкладывал. - запускаем -)Скрипт можно закинуть в любую дерикторию ололо Ты не понял =)) Я имел ввиду что в генте такого нету вовсе - ". /lib/lsb/init-functions" Вот поэтому после запуска скрипта он показывает статус сервера и т.д., а выше пишет, что данной директории нету. ![]() Я и сам знаю, что кидать можно куда угодно.Главное с правами запуска. =) Скрипт классный, но блин из-за этого . /lib/lsb/init-functions и не запускается... У тебя то у самого что за ось стоит?
Отредактировал: mclaren, - 25.8.2010, 13:02
|
|
|
|
Katactrofa
|
25.8.2010, 22:11
Сообщение
|
![]() |
Ты не понял =)) Я имел ввиду что в генте такого нету вовсе - ". /lib/lsb/init-functions" Вот поэтому после запуска скрипта он показывает статус сервера и т.д., а выше пишет, что данной директории нету. ![]() Я и сам знаю, что кидать можно куда угодно.Главное с правами запуска. =) Скрипт классный, но блин из-за этого . /lib/lsb/init-functions и не запускается... У тебя то у самого что за ось стоит? Дебиан, поставил бэ дебиан и не парился -)) А зачем от рута запускаешь? -)) |
|
|
|
mclaren
|
26.8.2010, 3:15
Сообщение
|
![]() |
А я и не парюсь просто что под рутом, не боюсь))
А вот как бы теперь твой скрипт использовать под гентой....теперь вопрос....эх блин. |
|
|
|
Katactrofa
|
26.8.2010, 7:08
Сообщение
|
![]() |
|
|
|
|
c0rax
|
26.8.2010, 11:21
Сообщение
|
![]() |
Gentoo:
Код /sbin/functions.sh
|
Поблагодарили 1 раз
|
|
mclaren
|
30.8.2010, 23:46
Сообщение
|
![]() |
shadowboss,
Спасибо большое. Скрипт запуска под генту. Script #!/bin/bash ### BEGIN INIT INFO # Provides: hlds # Required-Start: $syslog $local_fs $network # Required-Stop: $syslog $local_fs $network # Should-Start: $remote_fs $named # Should-Stop: $remote_fs $named # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start HLDS Server # Description: HLDS Start Script # # author: LeXiKoN http://eqline.ru # version: 0.92 # ### END INIT INFO # Source function library. . /sbin/functions.sh VERSION=0.92 ##################################################### # Конфигурирование ##################################################### SERVER_NAME="My Server" #Название сервера screen_name=server #Название screen-сессии path="/home/hlds_public/" #Путь до 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 отвечающего за проверку сервера #---------------------------------------------------- # Номер ядра/процессора в линуксе # 2х-ядерные: 0 - первое ядро, 1 - второе ядро # 4x-ядерные: 0 - первое ядро ... 3 - четвертое ядро # По аналогии с другими многоядерными процессорами use_core=0 #---------------------------------------------------- ################# ВНИМАНИЕ ################### # # Строчки ниже, если не знаете, лучше не трогать! # ################# ВНИМАНИЕ ################### RETVAL=0 succes="[\033[1;32m ОК \033[0m]" failed="[\033[1;31m FAIL \033[0m]" status_on="[\033[1;32m Online \033[0m]" status_off="[\033[1;31m Offline \033[0m]" title="\033[1;34m [::]\033[0m" if [ $condebug = 1 ]; then hlds_options2="-condebug" fi # Команда screen INTR="taskset -c $use_core /usr/bin/screen -A -m -d -S $screen_name" if [ ! -x $path/hlds_run ]; then printf "\033[22;31m Проверьте права на исполнение hlds_run \033[0m\n" exit 1 fi prestart_check() { if [ -f $path/$hlds_pid ] && [ -f $path/$screen_pid ]; then ch=`ps -ef | grep SCREEN | grep $screen_name` if [ -n "$ch" ]; then echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "\033[1;34m Сервер $SERVER_NAME\033[0m \033[32m(!!) на данный момент УЖЕ работает (!!)\033[0m\n" echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit 1 else cd $path rm -rf $path/$screen_pid rm -rf $path/$hlds_pid fi fi } start() { if [ $check_version = 1 ]; then check_version fi # Проверка престартовая prestart_check echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cd $path $INTR ./hlds_run -game $hlds_gametype +maxplayers $hlds_players +map $hlds_map +ip $hlds_ip +port $hlds_port $hlds_options $hlds_options2 -pidfile $hlds_pid # Поиск и запись пидов процессов сервера и скринв системе ps -ef | grep SCREEN | grep "$screen_name" | grep -v grep | awk '{ print $2}' > $path/$screen_pid printf "$title\033[1;34m Запуск сервера $SERVER_NAME \033[0m\n" printf "\033[1;35m Порт севрера:\033[0m \033[1;36m$hlds_port\033[0m\n" printf "\033[1;35m Привязка к ядру:\033[0m \033[1;36m$use_core\033[0m\n" printf "\033[1;35m Запуск от юзера:\033[0m \033[1;36m$use_user\033[0m\n" printf "\033[1;33m Статус ~> \033[0m" sleep 1 if [ -f $path/$hlds_pid ] && [ -f $path/$screen_pid ]; then ch=`ps -ef | grep SCREEN | grep $screen_name` if [ -n "$ch" ]; then printf "%53s$succes \n" else printf "%53s$failed \n" fi fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } stop() { if [ $check_version = 1 ]; then check_version fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if [ -f $path/$hlds_pid ] && [ -f $path/$screen_pid ]; then # Извлекаем ID процесса из файла и увибаем процессы kill `cat $path/$hlds_pid` kill `cat $path/$screen_pid` sleep 1 rm -rf $path/$screen_pid rm -rf $path/$hlds_pid printf "$title\033[1;31m Остановка $SERVER_NAME \033[0m" printf "%33s$succes \n" else printf "\033[1;34m Невозможно остановить $SERVER_NAME, сервер НЕ запущен \033[0m" printf "%5s$failed \n" fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } status() { if [ $check_version = 1 ]; then check_version fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "$title\033[1;34m Статус сервера $SERVER_NAME \033[0m\n" printf "\033[1;35m Порт севрера:\033[0m \033[1;36m$hlds_port\033[0m\n" printf "\033[1;35m Привязка к ядру:\033[0m \033[1;36m$use_core\033[0m\n" printf "\033[1;35m Запуск от юзера:\033[0m \033[1;36m$use_user\033[0m\n" printf "\033[1;33m Статус ~> \033[0m" sleep 1 ch=`ps -ef | grep SCREEN | grep $screen_name` if [ -n "$ch" ]; then printf "%49s$status_on \n" else printf "%48s$status_off \n" fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } console() { if [ $check_version = 1 ]; then check_version fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if [ -f $path/$hlds_pid ] && [ -f $path/$screen_pid ]; then printf "$title\033[1;34m Подключение к консоли $SERVER_NAME сервера \033[0m\n" echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "\033[36m Для выхода из консоли поочерёдно нажать \033[1;36mCtrl+A, D \033[0m\n" printf "\033[36m Для листинга консоли поочерёдно нажать \033[1;36mCtrl+A, Esc \033[0m\n" printf "\033[36m Для выхода из режима листинга нажать \033[1;36mEsc \033[0m\n" printf "\033[1;31m Внимание!!! По неаккуратности можно положить сервер :D \033[0m\n" echo " Консоль включится через 5 секунд..." sleep 5 /usr/bin/screen -R $screen_name else printf "\033[1;31m Невозможно подключиться к $SERVER_NAME, сервер не запущен \033[0m\n" fi } compile() { if [ $check_version = 1 ]; then check_version fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if [ -d $path/cstrike/addons/amxmodx ]; then printf "\033[32m Компиляция плагинов AmxModX \033[0m\n" echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "\033[36m Компилируются исходные файлы (sma), находящиеся в директории {addons/amxmodx/scripting/*.sma} \033[0m\n" printf "\033[36m По завершению компиляции нажмите Q для выхода \033[0m\n" printf "\033[36m Компиляция начнется через 2 секунды. \033[0m\n" sleep 2 cd $path/cstrike/addons/amxmodx/scripting ./compile.sh echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "\033[32m Плагины скомпилированы \033[0m\n" else printf "\033[22;31m Проверьте установлен ли AmxModX (??) \033[0m\n" fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } check_version() { echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cd $path rm -f version.txt wget http://eqline.ru/project/hlds_init_script/version.txt 1> /dev/null 2>&1 sleep 1 for ver in `cat $path/version.txt` do if [ $VERSION \< $ver ]; then printf "\033[1;31m Доступна новая версия скрипта ( $ver )\033[0m\n" printf "\033[36m Подробнее на форуме eQline.ru: http://forum.eqline.ru \033[0m\n" printf "\033[1;36m Ссылка: http://forum.eqline.ru/topic/361-скрипт-за...-hlds-серверов/ \033[0m\n" else printf "\033[1;36m Ваша версия является последней\033[0m \033[1;34m( Текущая версия: $VERSION ) \033[0m\n" fi break done echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rm -f version.txt sleep 1 } checker() { checktag="[HLDS-CheckUP]" checkdown=`$checker_command -P -a2s $hlds_ip:$hlds_port | grep DOWN` if [ -n "$checkdown" ]; then printf "\033[1;37m$checktag\033[0m $SERVER_NAME \033[31m*[DOWN]*\033[0m\n" # echo Отсылаем почту cd $path time=`date +%X` date=`date +%D` inlog=`$checker_command -P -a2s $hlds_ip:$hlds_port | grep DOWN` printf "[$time - $date] *[DOWN]* $inlog\n" >> checker.log stop sleep 2 start sleep 1 echo ----------------ATTANTION---------------- >> checker.log printf "StartUP $SERVER_NAME:" >> checker.log ch=`ps -ef | grep SCREEN | grep $screen_name` if [ -n "$ch" ]; then printf " *[OK]* \n" >> checker.log else printf " *[FAILED]* \n" >> checker.log fi echo ----------------------------------------- >> checker.log exit 1 fi checkup=`$checker_command -P -a2s $hlds_ip:$hlds_port | grep cstrike` if [ -n "$checkup" ]; then printf "\033[1;37m$checktag\033[0m $SERVER_NAME \033[32m*[OK]*\033[0m\n" cd $path time=`date +%X` date=`date +%D` inlog=`quakestat -P -a2s $hlds_ip:$hlds_port | grep cstrike` printf "[$time - $date] *[OK]* $inlog\n" >> checker.log exit 1 fi } case "$1" in start) start ;; stop) stop ;; restart) stop sleep 2 start ;; status) status ;; console) console ;; compile) compile ;; checkUpdate) check_version ;; checker) checker ;; *) echo "Usage: $0 {start|stop|restart|status|console|compile|checkUpdate|checker}" exit 1 esac
Отредактировал: mclaren, - 30.8.2010, 23:57
|
|
|
|
c0rax
|
31.8.2010, 0:03
Сообщение
|
![]() |
|
Поблагодарили 1 раз
|
|
DinamiTX
|
11.1.2011, 5:08
Сообщение
|
|
|
возможно ли корректно остановить сервер скриптом - чтоб бы в консоль сервера посылалась команда exit перед убийством процесса?
а то иногда логи частично теряются или вообще нету... а потом психостатс врёт.
Отредактировал: DinamiTX, - 11.1.2011, 5:09
|
|
|
|
L_O_T_U_S
|
16.5.2011, 2:36
Сообщение
|
![]() |
|
|
|
|
c0rax
|
16.5.2011, 13:44
Сообщение
|
![]() |
|
|
|
|
L_O_T_U_S
|
21.5.2011, 5:43
Сообщение
|
![]() |
OC:Gentoo
/sbin/functions.sh /etc/init.d/hlds start /etc/init.d/hlds status taskset: executing /usr/bin/screen failed: No such file or directory Хотя screen стоит . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Невозможно остановить My Server, сервер НЕ запущен [ FAIL ] права 777
Отредактировал: L_O_T_U_S, - 21.5.2011, 7:40
|
|
|
|
330863
|
21.5.2011, 8:52
Сообщение
|
![]() |
L_O_T_U_S,
пробуй пойскать screen бинарик Код whereis screen
|
|
|
|
L_O_T_U_S
|
21.5.2011, 9:47
Сообщение
|
![]() |
|
|
|
|
![]() ![]() |