Страница 1 из 1
подсчет кол-ва процессов программы.
Добавлено: 2010-02-20 19:40:35
Pez!
Приветствую. Проблема в следующем - есть несколько игровых серверов и постоянно падают. решил написать скриптик проверки и запихнуть в крон. Но сама проблема в том, что если выполнять скрипт просто так - все работает нормально, а через крон скрипту кажется, что процессво всегда ноль и он дергает все игровые серваки.
Код: Выделить всё
#!/bin/sh
summ_of_proc=`/usr/bin/su -m css_user -c "/bin/ps -aux | /usr/bin/grep 27015 | /usr/bin/grep -v grep | /usr/bin/grep -v root| /usr/bin/grep srcds_amd | /usr/bin/wc -l"`
game_dir="/usr/games/css_user"
start_script="server"
if [ $summ_of_proc -le 1 ]
then
echo "Server is down"
${game_dir}/${start_script} stop
sleep 5
${game_dir}/${start_script} start
echo "Server restart complete"
else
if [ $summ_of_proc -ge 2 ]
then
echo "Server is online"
fi
fi
Re: подсчет кол-ва процессов программы.
Добавлено: 2010-02-20 20:21:19
Alex Keda
подсказка: а вы сделайте окошко где испытываете скрипт минимальной ширины - и даже руками он начнёт дёргать

)
Re: подсчет кол-ва процессов программы.
Добавлено: 2010-02-20 21:26:47
Pez!
Эм, не совсем понял. Нужно строку с грепами разбить переносами строк ?
Re: подсчет кол-ва процессов программы.
Добавлено: 2010-02-21 10:39:16
Alex Keda
ширина системной консоли, в кроне - какая?
Re: подсчет кол-ва процессов программы.
Добавлено: 2010-02-21 19:16:19
Pez!
не знаю. = (
Сделал вот так, но эффект тот же:
Код: Выделить всё
#!/bin/sh
summ_of_proc=`/usr/bin/su -m css_user \
-c "/bin/ps -aux \
| /usr/bin/grep 27015 \
| /usr/bin/grep -v grep \
| /usr/bin/grep -v root \
| /usr/bin/grep srcds_amd \
| /usr/bin/wc -l"`
game_dir="/usr/games/css_user"
start_script="server"
if [ $summ_of_proc -le 1 ]
then
echo "Server is down"
${game_dir}/${start_script} stop
sleep 5
${game_dir}/${start_script} start
echo "Server restart complete"
else
if [ $summ_of_proc -ge 2 ]
then
echo "Server is online"
fi
fi
Re: подсчет кол-ва процессов программы.
Добавлено: 2010-02-21 20:09:07
Alex Keda
lissyara писал(а):ширина системной консоли, в кроне - какая?
Re: подсчет кол-ва процессов программы.
Добавлено: 2010-02-21 21:05:19
Pez!
не знаю, подскажите как посмотреть ?
Re: подсчет кол-ва процессов программы.
Добавлено: 2010-02-21 22:36:08
Alex Keda
Pez! писал(а):не знаю, подскажите как посмотреть ?
даже если подскажу, похоже вам это не поможет =((
но в партизана буду играть до конца

===========
вы окно до минимальных размеров делали? скрипт свой в нём запускали?
каков результат? какие выводы?
Re: подсчет кол-ва процессов программы.
Добавлено: 2010-02-21 22:46:12
Pez!
Сделал минимальный размер какой смог, запустил скрипт и был очень удивлен.....
Придется пытать партизанов ) Подскажите хоть где искать решение - гугель по запросу "ширина системной консоли" какой-то бред выдает.
Re: подсчет кол-ва процессов программы.
Добавлено: 2010-02-21 23:06:56
Neus
партизаны не здаюца!

Re: подсчет кол-ва процессов программы.
Добавлено: 2010-02-22 1:01:38
Pez!
решил так
Код: Выделить всё
#!/bin/sh
p=`ps -U css_user | grep srcds_amd | wc -l`
game_dir="/usr/games/css_user"
start_script="server"
if [ ${p} -le 1 ]
then
echo "Server is down"
${game_dir}/${start_script} stop
${game_dir}/${start_script} start
echo "Server restart complete"
else
if [ ${p} -ge 2 ]
then
echo "Server is online"
fi
fi
Но все же расскажите, пожалуйста, почему предыдущий вариант не работал корректно ?
Re: подсчет кол-ва процессов программы.
Добавлено: 2010-02-22 15:06:58
Alex Keda
в некоторых условиях и это вариант будет работать неверно

)
но ход мысли уже пошёл в нужную область.
==========
запустите скрипт с отладкой в окне на весь экран и не на весь, и найдите одно, кардинальное отличие.
Re: подсчет кол-ва процессов программы.
Добавлено: 2010-02-23 17:31:04
Pez!
Ну как я понял - есть ограничение на длинну команды и если больше какого-то значения (судя по намекам ширины системной консоли) то команда обрезается и выдает не верный результат, но никак не могу найти чемуже равна эта ширина )
подскажите как найти-то ? = )
Re: подсчет кол-ва процессов программы.
Добавлено: 2010-02-23 21:45:49
Alex Keda
ALT+F2
веди символы и посчитай - сколько в строку влезло
=======
а вообще мне надоело.
прочти
и заюзай чёнить типа
чтобы всегда выводилась полная команда, независимо от размера терминала.
=====
дочего же все ленивые =((
Re: подсчет кол-ва процессов программы.
Добавлено: 2010-02-23 23:39:27
Pez!
Спасибо, теперь почти разобрался.