..искал я нормальный авто-подъем мира и так не нашел.. увидил тему ураганчика с его авто-подъемом мира, поставил.. дождался пока мир упадёт, ждал пока поднимится - так и не поднялся.. ..я пошел к ураганчику..ураганчик не ответил мне.. забил *** :rolleyes: . через минут 15 в аську вошел Ваня =Master= и я вспомнил про упоминание ураганчиком в начале темы про Ванин скрипт... заинтересовался, залез к ване на серв, скачал (там ещё кучка интересных прог). нашел скрипты, заинтересовался, как же они работают.. посмотрев скрипты, понял что они не совсем продуманы запускаются до бесконечности.. спросил у вани, вот что услышал: заинтересовался, а что если скрипт, после запуска 2-ого скрипта, 1-й будет закрываться? и т.д. плохо зная скрипты, погуглил в яндексе "закрытие скрипта .sh"нарыл совершенно не относящийся к делу скриптно понял что кажется нашел искомое! :unsure: Код: user@host:~$ cat /etc/rc.local #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. exit 0[/color] сам тестить не стал, ибо мне комп ещё нуженрешил спросить ваших советов з.ы. хочу сделать вот так: start.sh - главный скрипт, который не нужно закрывать) Код: #!/bin/sh echo "" echo "" echo "==starting reap sistem==" sleep 2 cd /host/home/reap/ ./reload.sh reload.sh - первый перезапускаемый скрипт Код: #!/bin/sh echo "" echo "=Запуск проверки мира=" sleep 1 cd /host/home/reap/ ./reap sleep 100 cd /host/home/reap/ ./reload2.sh exit 0 reload2.sh - второй перезапускаемый скрипт Код: #!/bin/sh echo "" echo "=reload script2 is starting=" sleep 2 cd /host/home/reap/ ./reload.sh exit 0 reap - сам файл проверки, проверяет включен ли инст\включающий инст :unsure: Код: #!/bin/bash cd /host/home/gamed/ ./gs gs01 >gs01.log 2>&1 & sleep 5 for (( e = 1 ; e <= 1; e++ )) do if test $e -le 9 then ./gs is0$e >/dev/null 2>&1 & else ./gs is$e >/dev/null 2>&1 & fi done sleep 5 echo "Проверка РјРёСЂР° завершена" теперь спрашивается: 1)exit 0 закроет скрипты, или там какая-то другая команда нужна? 2)если он закроет, нормально дальше будет запускаться эта цепь? 3)точно надо прописывать команду закрытия в скрипты перезапуска, или же в reap ? если все что я написал не имеет смысла, прошу никак не реагировать..
Также нашел интересную статью, с Ksh скриптом убивающим другой скрипт: Код: #!/bin/ksh if [ $# -gt 0 ]; then process_name=$1 ps_count=`ps -ef | grep -v 'grep' | grep -v 'kill' | grep -i -c $process_name` echo "Process count: $ps_count" set -A array_name `ps -ef | grep -i $process_name | grep -v 'grep' | grep -v 'kill' | awk '{print $2}' | sort -u` print "ps -ef | grep -i $process_name | grep -v 'grep' | grep -v 'kill' | awk '{print \$2 \$8}' | sort -u -n" print "${array_name[*]}" kill_count=0 while [ $kill_count -lt $ps_count ] do kill -9 ${array_name[$kill_count]} # print "kill -15 ${array_name[$kill_count]}" ((kill_count=kill_count+1)) done else print "Usage: $0 process_name" print "" fi (c)Eddnet
JoLan, ты случайно ответил на мой 3-й вопрос)значит теперь надо исказть команду завершения скрипта для файла reap!)
Какой то скрипт бредовый... Вот откопал где-то не помню где: Код: PW_PATH=/home pkill -0 -f './gs gs01' y=$? if [ "$y" = 0 ]; then exit 0 fi if [ "$y" = 1 ]; then cd $PW_PATH/gamed; ./gs gs01 >$PW_PATH/logs/game1.log & fi sleep 30 Вешается на крон и прекрасно поднимает мир. По аналогии этого скрипта можно сделать такие же для любой локации.
Я лично пользуюсь Автоподъёмом Uragan4ik'а Вполне хороший скрипт, проверял, ложил мир, максимум через 7 минут он поднимается. Ссылка
Делаешь файл auto_upper.sh в каталоге с сервером следующего содержания (твой скрипт) Код: PW_PATH=/pwserver pkill -0 -f './gs gs01' y=$? if [ "$y" = 0 ]; then exit 0 fi if [ "$y" = 1 ]; then cd $PW_PATH/gamed; ./gs gs01 >$PW_PATH/logs/game1.log & fi sleep 30 открываешь свой консоль, Код: su вводишь свой пароль.. Код: gedit /etc/crontab Добаляешь новую строчку Код: 5 * * * * /pwserver/auto_upper.sh Сохраняешь. Код: chmod 700 /pwserver/auto_upper.sh Код: crontab -u root /etc/crontab проверим: Код: crontab -u root -l если увидел свою строчку, то всё, не работать не может. то, что у тебя не запускался автоподъём не удивительно, крон всегда действует с правами рут, но крон-файлы пользователей он выполняет с маской их прав, поэтому мы сделали рутовский крон файл.
ты это не мне скажи, а ему, не у меня же крон не работал, я всеголишь включил телепатию и понял что он сидит под рутом.
такс при вводе команды crontab -u root -l выдает no crontab for root при попытке запуска auto_upper.sh выдает /home# ./auto_upper.sh : команда не найденаe 2: Usage: pkill [-SIGNAL] [-fvx] [-n|-o] [-P PPIDLIST] [-g PGRPLIST] [-s SIDLIST] [-u EUIDLIST] [-U UIDLIST] [-G GIDLIST] [-t TERMLIST] [PATTERN] : команда не найденаe 4: ./auto_upper.sh: line 12: ошибка синтаксиса: неожиданный конец файла