Aleksandros
Участник
- Сообщения
- 202
- Реакции
- 6
Здравствуйте, как сделать что бы сервер csgo автоматически запускался после падения?
На centos.
На centos.
на дебиан
требуется screen, lsof
run1.sh
#!/bin/sh
cd /home/***/steam_pipe/csg2
screen -A -m -d -S csg2 ./run2.sh
run2.sh
#!/bin/sh
cd /home/***/steam_pipe/csg2
echo Starting...
while true
do
kill -9 $( lsof -i:27033 -t )
sleep 2
./srcds_run -game csgo -norestart -console -debug -port 27033 +net_public_adr my_ip +ip my_ip +hostport 27033 -usercon +game_type 0 +game_mode 0 +mapgroup mgall +map de_dust2 -maxplayers_override 42
echo Restarting in 3 Seconds...
sleep 3
done
Если ты "плаваешь" в линуксе, тогда лучше такая инструкция
csgoserver: Counter-Strike: Global Offensive |
Отредактируй файл csgoserverПытаюсь поставить по инструкции.
На этапе:
4. Run the installer and follow the instructions.
./csgoserver install
Пишет что нехватает места на диске ( диск на 30гб), оно что пытается мне новый сервер в другую директорию поставить? Без этого никак? На уже установленный сервер нельзя это поставить?
filesdir="${rootdir}/serverfiles"
Отредактируй файл csgoserver
Попробуй изменить:
serverfiles на свою папкуC-подобный:filesdir="${rootdir}/serverfiles"
Как вариант:
1) Если серверу уже есть, то рядом с csgoserver создай папку - serverfiles.
2) Все файлы сервера (старого), скопируй в папку serverfiles (А именноОффтоп)
3) Попробовать запустить сервер ./csgoserver st
Скопируй себе папку cfg и запускай, настройки не должно менять. Этот скрипт удобный в использовании, есть много нужных функций.И оно мне обнулит текущий сервер на чистый, собьет все настройки?
Как вариант попробую сейчас.
А нету что то попроще, вроде скрипта? что бы не рисковать... сервер не тягать туда-сюда.
Как вариант:
1) Если серверу уже есть, то рядом с csgoserver создай папку - serverfiles.
2) Все файлы сервера (старого), скопируй в папку serverfiles (А именноОффтоп)
3) Попробовать запустить сервер ./csgoserver st
Скопируй себе папку cfg и запускай, настройки не должно менять. Этот скрипт удобный в использовании, есть много нужных функций.
Скинь тот файл который ты редактировал, я посмотрю что ты там сделал. И полный путь к папке csgo напишиНе получилось, сервер не стартует(
Твой вариант тоже не пашет, всеравно качает файлы в папку serverfiles(
/root/Servercsgo/servercsgo/csgoСкинь тот файл который ты редактировал, я посмотрю что ты там сделал. И полный путь к папке csgo напиши
Проблема в том что сервер ты не сможешь запустить под рутом, для этого тебе нужно создать пользователя. В консоле пишешь:/root/Servercsgo/servercsgo/csgo
Если после редактирования файла, поробовать запустить сервер ./csgoserver st то пишет:
Screenshot
Если попробовать установить ./csgoserver install то пишет:
Screenshot
adduser csgoserver
Проблема в том что сервер ты не сможешь запустить под рутом, для этого тебе нужно создать пользователя. В консоле пишешь:
Дальше вводишь пароль (при вводе у тебя будет показывать что ты ничего не пишешь, так должно быть)C-подобный:adduser csgoserver
После создания пользователя, логинешься под ним, кладешь этот скрипт, редактируешь его под себя. Нужно сменить ИР сервера, порт и количество слотов.
Потом создаешь папку serverfiles и туда кладешь свой сервер. Не забудь выставить права на запуск скрипта. Запускаешь сервер: ./csgoserver start
(P.S Скрипт должен находиться в корне пользователя)
#!/bin/bash
otp=`php -r '$addr="ВАШАДРЕС";
$port=ВАШПОРТ;
$qw=chr(32);
$fp = fsockopen ("udp://".$addr,$port);
fwrite($fp,"\xFF\xFF\xFF\xFF\x54\x53\x6F\x75\x72\x63\x65\x20\x45\x6E\x67\x69\x6E\x65\x20\x51\x75\x65\x72\x79\x00".chr(10));
$start=time(); socket_set_timeout($fp,1); $st=fread($fp,1); $r=socket_get_status($fp); $r=$r["unread_bytes"]; $st.=@fread($fp,$r); fclose($fp);
$otp=1;
if ($st=="")
$otp=0;
echo $otp;
'
`
if [ "$otp" = "0" ];
then
# echo "Not working!"
sh /путьдосервера/run.sh
# echo "Working fine!"
fi
То, что вы предлагаете, не спасёт от "полупадения", то есть зависания.
Можно добавить вот такое в crontab с интервалом в 5 минут:
*/5 * * * * sh /путьдоскрипта/check.sh
А сам файл check.sh:
C-подобный:#!/bin/bash otp=`php -r '$addr="ВАШАДРЕС"; $port=ВАШПОРТ; $qw=chr(32); $fp = fsockopen ("udp://".$addr,$port); fwrite($fp,"\xFF\xFF\xFF\xFF\x54\x53\x6F\x75\x72\x63\x65\x20\x45\x6E\x67\x69\x6E\x65\x20\x51\x75\x65\x72\x79\x00".chr(10)); $start=time(); socket_set_timeout($fp,1); $st=fread($fp,1); $r=socket_get_status($fp); $r=$r["unread_bytes"]; $st.=@fread($fp,$r); fclose($fp); $otp=1; if ($st=="") $otp=0; echo $otp; ' ` if [ "$otp" = "0" ]; then # echo "Not working!" sh /путьдосервера/run.sh # echo "Working fine!" fi
Из плюсов - сервер всегда поднимется, даже после перезагрузки системы.
Из минусов - за 5 минут простоя можно потерять весь онлайн. Поэтому лучше это использовать вместе со стандартными алгоритмами, встроенными в лаунчер сервера srcds_run.
Всё спасает, там есть скрипт на проверку состояния сервера, если что то его автоматом поднимет или перезапустит, так же при краше сервер сам перезапускаетсяТо, что вы предлагаете, не спасёт от "полупадения", то есть зависания.
Можно добавить вот такое в crontab с интервалом в 5 минут:
*/5 * * * * sh /путьдоскрипта/check.sh
А сам файл check.sh:
C-подобный:#!/bin/bash otp=`php -r '$addr="ВАШАДРЕС"; $port=ВАШПОРТ; $qw=chr(32); $fp = fsockopen ("udp://".$addr,$port); fwrite($fp,"\xFF\xFF\xFF\xFF\x54\x53\x6F\x75\x72\x63\x65\x20\x45\x6E\x67\x69\x6E\x65\x20\x51\x75\x65\x72\x79\x00".chr(10)); $start=time(); socket_set_timeout($fp,1); $st=fread($fp,1); $r=socket_get_status($fp); $r=$r["unread_bytes"]; $st.=@fread($fp,$r); fclose($fp); $otp=1; if ($st=="") $otp=0; echo $otp; ' ` if [ "$otp" = "0" ]; then # echo "Not working!" sh /путьдосервера/run.sh # echo "Working fine!" fi
Из плюсов - сервер всегда поднимется, даже после перезагрузки системы.
Из минусов - за 5 минут простоя можно потерять весь онлайн. Поэтому лучше это использовать вместе со стандартными алгоритмами, встроенными в лаунчер сервера srcds_run.
Скайп: rokfestrНа первом скрине видно что я из под пользователя запускал.
Сделал все по твоей инфе, пишет отказано в доступе: Screenshot
После этого Поставил права 777 на все каталоги и файлы в них, и создал csgo-server-script.log в соответствующей директории. И всеравно выбивает что нет прав для запуска.
В логах ошибка:
Авг 12 19:09:20 csgo-server: CHECK: FATAL: check_permissions.sh exiting with code: 1
П.С. у тя есть скайп чувак?
Из-за атаки методом VSE сервер будет с таким скриптом постоянно перезапускаться.То, что вы предлагаете, не спасёт от "полупадения", то есть зависания.
Можно добавить вот такое в crontab с интервалом в 5 минут:
*/5 * * * * sh /путьдоскрипта/check.sh
А сам файл check.sh:
C-подобный:#!/bin/bash otp=`php -r '$addr="ВАШАДРЕС"; $port=ВАШПОРТ; $qw=chr(32); $fp = fsockopen ("udp://".$addr,$port); fwrite($fp,"\xFF\xFF\xFF\xFF\x54\x53\x6F\x75\x72\x63\x65\x20\x45\x6E\x67\x69\x6E\x65\x20\x51\x75\x65\x72\x79\x00".chr(10)); $start=time(); socket_set_timeout($fp,1); $st=fread($fp,1); $r=socket_get_status($fp); $r=$r["unread_bytes"]; $st.=@fread($fp,$r); fclose($fp); $otp=1; if ($st=="") $otp=0; echo $otp; ' ` if [ "$otp" = "0" ]; then # echo "Not working!" sh /путьдосервера/run.sh # echo "Working fine!" fi
Из плюсов - сервер всегда поднимется, даже после перезагрузки системы.
Из минусов - за 5 минут простоя можно потерять весь онлайн. Поэтому лучше это использовать вместе со стандартными алгоритмами, встроенными в лаунчер сервера srcds_run.
С чего бы? У меня так зомбисервер уже два год работает под 1.6.Из-за атаки методом VSE сервер будет с таким скриптом постоянно перезапускаться.