Страница 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!
Сделал минимальный размер какой смог, запустил скрипт и был очень удивлен..... :shock:

Придется пытать партизанов ) Подскажите хоть где искать решение - гугель по запросу "ширина системной консоли" какой-то бред выдает.

Re: подсчет кол-ва процессов программы.

Добавлено: 2010-02-21 23:06:56
Neus
партизаны не здаюца! :pardon:

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
веди символы и посчитай - сколько в строку влезло
=======
а вообще мне надоело.
прочти и заюзай чёнить типа

Код: Выделить всё

ps -auxww
чтобы всегда выводилась полная команда, независимо от размера терминала.
=====
дочего же все ленивые =((

Re: подсчет кол-ва процессов программы.

Добавлено: 2010-02-23 23:39:27
Pez!
Спасибо, теперь почти разобрался.