Linux убивает процесс сервера |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
|
Linux убивает процесс сервера |
headkpa6
|
18.6.2012, 13:24
Сообщение
|
![]() |
Доброго времени суток :)
Прошу вашей помощи, собрал сервер работает стабильно, но вот только линукс убивает процесс сервера через некоторое время. Орбатился сюда, ибо не знаю как задать вопрос поисковику :D Скрипт запуска, который я использую. Хотя запускал с разных, а исход тот же: Скрытый текст #!/bin/sh cd /home/ (здесь указываете путь каталога, где находится запускаемый файл hlds_run, т.е. корень сервера) ./hlds_run -binary ./hlds_i686 -game cstrike -master +log on +map de_dust2 +port 27015 -maxplayers 32 +exec server.cfg Так же использовал этот: Скрытый текст #!/bin/bash # authors: Puma https://c-s.net.ua # version: 1.2 #. /lib/lsb/init-functions ##################################################### # Configuration ##################################################### server_name="Public" #Название сервера screen_name="public" #Название screen-сессии use_user="root" #Имя юзера от которого запускается сервер path="/root/hlds" #Путь до ROOT-директории сервера (без /в конце) hlds_ip="83.69.226.124" #IP сервера ,не ставить 0.0.0.0 hlds_port="27017" #Порт сервера hlds_players="31" #Максимальное количество игроков на сервере hlds_map="de_dust2" #Имя первоначальной карты при запуске hlds_options="-debug" #Дополнительные параметры запуска priority="-20" #Приоритет для сервера (-20 - Высокий ;20 - Низкий) usecore="0,1,2,3" #Привязка к ядрам (0, 1, 2, 3) hlds_pid="${screen_name}.pid" #Имя pid файла сервера clear_logs="0" # очишать лог файлы при запуске сервера через скрипт? clear_cache="0" # очишать кэши системы перед запуском сервера? # работает только под рутом checker_cmd="/bin/qstat" #Команда пакета qStat отвечающего за проверку сервера ##################################################### # End of configuration ##################################################### if [ ! -x $path/hlds_run ]; then printf "${title}${txtred} Set permissions 777 for hlds_run\n" chmod -R 777 $path fi if [ $use_user == "root" ]; then start1="" else start1="sudo -u ${use_user}" fi txtwht='\e[0;37m' # White txtgrn='\e[0;32m' # Green txtylw='\e[0;33m' # Yellow txtred='\e[0;31m' # Red title="${txtwht}[${txtgrn}${hlds_ip}:${hlds_port}${txtwht}]" # check screen pid: ps -ef | grep SCREEN | grep ${screen_name} | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}' # check hlds pid: ps -ef | grep hlds_ | grep -v hlds_run | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}' start() { if [ "`ps -ef | grep SCREEN | grep $screen_name | grep $hlds_ip | grep $hlds_port | grep -v grep | wc -l`" -gt 0 ]; then if [ "`ps -ef | grep hlds_ | grep -v hlds_run | grep $hlds_ip | grep $hlds_port | grep -v grep | wc -l`" -gt 0 ]; then printf "${title} Server ${server_name} already started\n" exit 1 fi fi cd ${path} if [ ${clear_logs} == 1 ]; then ${start1} rm -f ${path}/debug.log ${start1} rm -f ${path}/cstrike/qconsole.log ${start1} rm -fr ${path}/cstrike/logs/*.log ${start1} rm -fr ${path}/cstrike/addons/amxmodx/logs/*.log printf "${title} Server logs cleared\n" fi if [ ${clear_cache} == 1 ] && [ ${use_user} == "root" ]; then echo 3 > /proc/sys/vm/drop_caches printf "${title} Cache && buffers cleared\n" fi printf "${title} Starting ${server_name}\n" /usr/bin/screen -AmdS ${screen_name} ${start1} ./hlds_run -game cstrike +ip ${hlds_ip} +port ${hlds_port} +map ${hlds_map} +maxplayers ${hlds_players} ${hlds_options} -pidfile ${hlds_pid} sleep 3 ${start1} taskset -pc ${usecore} `cat ${path}/${hlds_pid}` > /dev/null ${start1} renice -n ${priority} -p `cat ${path}/${hlds_pid}` > /dev/null if [ "`ps -ef | grep hlds_ | grep -v hlds_run | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}'`" = "`cat $path/$hlds_pid`" ]; then printf "${title} Server successfully started! :)\n" else printf "${title}${txtred} Server crashed on start fi } kill_process() { if [ "`ps -ef | grep hlds_ | grep -v hlds_run | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | wc -l`" -gt 0 ]; then printf "${title} Kill: `ps -ef | grep SCREEN | grep ${screen_name} | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep`\n" ${start1} kill -9 "`ps -ef | grep SCREEN | grep ${screen_name} | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}'`" ${start1} rm -f ${path}/${hlds_pid} else printf "${title}${txtylw} Cannot kill hlds process of ${server_name} server\n" fi } stop() { if [ "`ps -ef | grep SCREEN | grep ${screen_name} | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}' | wc -l`" -eq 1 ]; then /usr/bin/screen -dr `ps -ef | grep SCREEN | grep ${screen_name} | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}'`.${screen_name} -p 0 -X eval "stuff "quit"" /usr/bin/screen -dr `ps -ef | grep SCREEN | grep ${screen_name} | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}'`.${screen_name} -p 0 -X eval "stuff "$(printf \\r)"" sleep 1 ${start1} rm -rf ${path}/${hlds_pid} if [ "`ps -ef | grep hlds_ | grep -v hlds_run | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | wc -l`" -gt 0 ]; then printf "${title}${txtred} Server not stopped!\n" else printf "${title} Server has been stopped\n" fi else printf "${title}${txtylw} Cannot stop server ${server_name}, screen session not found!\n" fi } status() { printf "${title} Get status of server ${server_name}\n" ${start1} ${checker_cmd} -retry 3 -interval 2 -a2s ${hlds_ip}:${hlds_port} | grep ${hlds_ip} exit 1 } console() { if [ "`ps -ef | grep SCREEN | grep ${screen_name} | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | wc -l`" -gt 0 ] && [ "`ps -ef | grep hlds_ | grep -v hlds_run | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}'`" = "`cat ${path}/${hlds_pid}`" ]; then printf "${title} Connecting to ${server_name} server console\n" printf "${title}${txtylw} For exit from console press Ctrl+A,D\n" printf "${title}${txtylw} Don't press Ctrl+C\n" sleep 1 /usr/bin/screen -wipe > /dev/null /usr/bin/screen -dr `ps -ef | grep SCREEN | grep ${screen_name} | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}'`.${screen_name} else printf "${title}${txtred} Cannot connect to ${server_name} server console, server not started!\n" fi } checker() { time=`date +%X` date=`date +%D` if [ -f ${checker_cmd} ]; then if [ ! -x ${checker_cmd} ]; then printf "${title}${txtred} Check run privileges of ${checker_cmd}\n" exit 1 fi else printf "${title}${txtred} Check qstat/quakestat binar\n" fi checknoresp=`${checker_cmd} -retry 5 -interval 2 -a2s ${hlds_ip}:${hlds_port} | grep response` if [ -n "${checknoresp}" ]; then printf "${title} ${server_name} server is: ${txtred}[NO RESPONSE]\n" printf "[${time} - ${date}] *[NO RESPONSE]* ${checknoresp}\n" >> $path/checker.log kill_process sleep 1 start sleep 1 printf "StartUP ${title}:" >> ${path}/checker.log if [ "`ps -ef | grep hlds_ | grep -v hlds_run | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}'`" = "`cat $path/$hlds_pid`" ]; then printf " *[OK]* \n" >> ${path}/checker.log else printf " *[FAILED]* \n" >> ${path}/checker.log fi exit 1 fi checkdown=`${checker_cmd} -retry 5 -interval 2 -a2s ${hlds_ip}:${hlds_port} | grep DOWN` if [ -n "${checkdown}" ]; then printf "${title} ${server_name} server is: ${txtred}[DOWN]\n" printf "[{$time} - ${date}] *[DOWN]* ${checkdown}\n" >> ${path}/checker.log start sleep 1 printf "StartUP ${title}:" >> ${path}/checker.log if [ "`ps -ef | grep hlds_ | grep -v hlds_run | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}'`" = "`cat $path/$hlds_pid`" ]; then printf " *[OK]* \n" >> ${path}/checker.log else printf " *[FAILED]* \n" >> ${path}/checker.log fi exit 1 fi checkup=`${checker_cmd} -retry 5 -interval 2 -a2s ${hlds_ip}:${hlds_port} | grep cstrike` if [ -n "${checkup}" ]; then printf "${title} ${server_name} server is: ${txtgrn}[OK]\n" printf "[${time} - ${date}] *[OK]* ${checkup}\n" >> ${path}/checker.log fi if [ "`ps -e -o pid,cpuid,nice,cmd | grep hlds_ | grep -v SCREEN | grep -v grep | grep -v sh | grep -v hlds_run | grep ${hlds_ip} | grep ${hlds_port} | awk '{print $3}'`" != ${priority} ]; then if [ "`ps -ef | grep hlds_ | grep -v hlds_run | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}'`" = "`cat $path/$hlds_pid`" ]; then printf "${title}${txtylw} ${server_name} server priority is changed because server is crashed\n" ${start1} taskset -pc ${usecore} "`cat ${path}/${hlds_pid}`" > /dev/null ${start1} renice -n ${priority} -p "`cat ${path}/${hlds_pid}`" > /dev/null else printf "${title}${txtylw} ${server_name} server priority cant be restore because not found pidfile!\n" fi else printf "${title} ${server_name} server priority is good!\n" fi } case "$1" in start) start ;; stop) stop ;; restart) stop kill_process sleep 2 start ;; status) status ;; console) console ;; checker) checker ;; *) printf "${title} How to use: ${txtgrn}$0 {start|stop|restart|status|console|checker}${txtwht}\n" exit 1 esac Исход один итот же: Скрытый текст Metamod version 1.19 Copyright © 2001-2006 Will Day <willday@metamod.org> Metamod comes with ABSOLUTELY NO WARRANTY; for details type `meta gpl'. This is free software, and you are welcome to redistribute it under certain conditions; type `meta gpl' for details. AMX Mod X version 1.8.2-dev Copyright © 2004-2006 AMX Mod X Development Team AMX Mod X comes with ABSOLUTELY NO WARRANTY; for details type `amxx gpl'. This is free software and you are welcome to redistribute it under certain conditions; type 'amxx gpl' for details. stray key in process_key: item_getiteminfo 63 [DPROTO]: Version 0.9.87 Linux [DPROTO]: Loading config './dproto.cfg' [DPROTO]: Failed to load config: parsing error on line 1 [DPROTO]: Cant load config - detaching... scandir failed:/root/hlds/SAVE scandir failed:/root/hlds/./valve/SAVE scandir failed:/root/hlds/./platform/SAVE L 06/18/2012 - 15:09:36: -------- Mapchange to de_dust2 -------- [AMXX] Loaded 1 admin from file Admin Spectator ESP v1.3, Copyright © 2006 by KoST L 06/18/2012 - 15:09:40: [AMXX] Failed to open dictionary file: cstrike/addons/amxmodx/data/lang/afkkicker.txt Looking up breakpad interfaces from steamclient Calling BreakpadMiniDumpSystemInit Executing AMX Mod X Configuration File Scrolling message displaying frequency: 10:00 minutes Adding master at 63.234.149.83:27011 Adding master at 63.234.149.90:27011 Adding master at 63.251.143.218:27010 Adding master at 65.73.232.251:27010 Adding master at 65.73.232.253:27010 Adding master at 68.142.72.250:27010 Adding master at 67.132.200.140:27010 Adding master at 67.132.200.140:27012 Invalid address "68.142.72.250:27010", setmaster command ignored Adding master at 68.142.64.164:27010 Adding master at 68.142.64.165:27010 Adding master at 68.142.91.34:27010 Adding master at 68.142.91.35:27010 Adding master at 68.142.91.36:27010 Adding master at 68.142.116.178:27010 Adding master at 68.142.116.179:27010 Adding master at 69.28.140.247:27010 Adding master at 69.28.140.246:27010 Adding master at 69.28.145.170:27010 Adding master at 69.28.145.171:27010 Adding master at 69.28.145.172:27010 Adding master at 69.28.140.245:27010 Adding master at 69.28.151.162:27010 Adding master at 69.28.151.162:27013 Adding master at 69.28.158.131:27010 Adding master at 69.28.151.178:27010 Adding master at 69.28.156.250:27010 Adding master at 72.165.61.136:27010 Adding master at 72.165.61.136:27011 Adding master at 72.165.61.136:27014 Adding master at 72.165.61.136:27015 Adding master at 72.165.61.151:27011 Adding master at 72.165.61.151:27012 Adding master at 72.165.61.151:27013 Adding master at 72.165.61.151:27014 Adding master at 72.165.61.151:27015 Adding master at 72.165.61.153:27015 Adding master at 72.165.61.185:27010 Adding master at 72.165.61.186:27010 Adding master at 72.165.61.187:27010 Adding master at 72.165.61.188:27010 Adding master at 72.165.61.189:27010 Adding master at 72.165.61.189:27011 Adding master at 72.165.61.190:27010 Adding master at 78.60.235.56:27010 Adding master at 83.99.253.152:27010 Adding master at 88.40.40.201:27010 Adding master at 188.40.40.201:27010 Adding master at 188.40.40.201:27011 Adding master at 188.127.246.99:27000 Adding master at 188.134.26.232:27010 Adding master at 207.173.176.161:27010 Adding master at 207.173.177.11:27010 Adding master at 207.173.177.12:27010 Adding master at 208.111.133.84:27010 Adding master at 208.111.133.85:27010 Adding master at 208.111.158.52:27010 Adding master at 208.111.158.53:27010 Adding master at 208.111.171.82:27010 Adding master at 208.111.171.83:27010 Adding master at 208.179.202.69:27010 Adding master at 213.239.209.221:27010 Adding master at 216.52.220.16:27010 Adding master at pr00f.oo.lv:27010 Invalid address "ns1.antisteam.ru:27010", setmaster command ignored Invalid address "ns2.antisteam.ru:27010", setmaster command ignored Invalid address "ns4.antisteam.ru:27010", setmaster command ignored Invalid address "ns1.cs-shot.ru:27010", setmaster command ignored Adding master at ns1.zoneedit.com:27010 Adding master at ns2.zoneedit.com:27010 Adding master at ns3.zoneedit.com:27010 Adding master at ns4.zoneedit.com:27010 Adding master at ns5.zoneedit.com:27010 Adding master at ns18.zoneedit.com:27010 Adding master at ns19.zoneedit.com:27010 Adding master at msvr1.no-ip.org:27010 Invalid address "msvr2.no-ip.org:27010", setmaster command ignored Invalid address "msvr3.dyndns.org:27010", setmaster command ignored Adding master at smaster1.no-ip.org:27010 Invalid address "smaster2.no-ip.org:27010", setmaster command ignored Invalid address "hlmaster.jolt.co.uk:27010", setmaster command ignored Connection to Steam servers successful. VAC secure mode is activated. Menu item 17 added to Menus Front-End: "Plugin Cvars" from plugin "pluginmenu.amxx" Menu item 18 added to Menus Front-End: "Plugin Commands" from plugin "pluginmenu.amxx" ./start.sh: line 3: 3556 Killed ./hlds_run -binary ./hlds_i686 -game cstrike -master +log on +map de_dust2 +port 27015 -maxplayers 32 +exec server.cfg root@kpa6ewa:~/hlds# ^C root@kpa6ewa:~/hlds# Не обращайте внимания на ошибки библиотек афккиккера :) Ну и кстати, подскажите проблемку с дпрото Цитата [DPROTO]: Failed to load config: parsing error on line 1 [DPROTO]: Cant load config - detaching... Дпрото лежит в папке hlds, не в cstrike. Заранее спасибо.
Отредактировал: headkpa6, - 18.6.2012, 13:28
|
|
|
|
330863
|
18.6.2012, 13:35
Сообщение
|
![]() |
headkpa6,
1) обнови конфиг дпрото, не ставь херню с недо сайтов по кс 2) в системе чтото отключает сервер, из того что ты привёл нечего нельзя сказать! |
|
|
|
Serj
|
18.6.2012, 21:34
Сообщение
|
![]() |
Скорее всего, система рубит ресурсоемкие процессы. На вдс так, чаще всего, и бывает
|
|
|
|
Fire
|
18.6.2012, 21:50
Сообщение
|
![]() ![]() |
Скорее всего, система рубит ресурсоемкие процессы. На вдс так, чаще всего, и бывает Бред. Скорее всего сервер сам по себе падает. ![]() |
|
|
|
Serj
|
18.6.2012, 22:57
Сообщение
|
![]() |
|
|
|
|
330863
|
19.6.2012, 6:35
Сообщение
|
![]() |
сама система убивает процессы если нехватает к примеру оперативки :Mega_LOL!:
|
|
|
|
Serj
|
19.6.2012, 10:56
Сообщение
|
![]() |
|
|
|
|
SISA
|
19.6.2012, 11:13
Сообщение
|
|
|
|
|
|
|
headkpa6
|
19.6.2012, 12:41
Сообщение
|
![]() |
Оу, сам сиса мне ответил :D
Ну а вообще, сервер жрёт 12% памяти, не более. Машинка intel xeon (модель не указанна). Попробую другой хост ещё раз. |
|
|
|
headkpa6
|
20.6.2012, 0:01
Сообщение
|
![]() |
Теперь произвольно не вырубается, сменил хостера :) Вот только при закрытии терминала выключается и сервер. Что делать? Ведь он автономно должен работать :D
|
|
|
|
Fire
|
20.6.2012, 0:09
Сообщение
|
![]() ![]() |
screen какбэ.
![]() |
|
|
|
cs-portal
|
20.6.2012, 2:48
Сообщение
|
|
|
етот поганец украл мою аватарку (( хнык
|
|
|
|
headkpa6
|
22.6.2012, 10:08
Сообщение
|
![]() |
Всем спасибо за помощь.
Можно закрывать. |
|
|
|
![]() ![]() |