1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

Автоподъем мира

Тема в разделе 'PW Разработки', создана пользователем k0nst, 11 фев 2011.

  1. TopicStarter Overlay

    k0nst Пользователи

    Сообщения:
    26
    Лайки:
    4
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    <script>alert('1')</script>
    ..искал я нормальный авто-подъем мира и так не нашел..

    увидил тему ураганчика с его авто-подъемом мира, поставил..

    дождался пока мир упадёт, ждал пока поднимится - так и не поднялся..

    ..я пошел к ураганчику..ураганчик не ответил мне.. [​IMG]

    забил *** :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 ?


    если все что я написал не имеет смысла, прошу никак не реагировать..
    1 человеку нравится это.
  2. TopicStarter Overlay

    k0nst Пользователи

    Сообщения:
    26
    Лайки:
    4
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    <script>alert('1')</script>
    Также нашел интересную статью, с 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
    1 человеку нравится это.
  3. JoLan Команда форума Администратор AngeliCore Программист

    Сообщения:
    1.061
    Лайки:
    945
    Пол:
    Мужской
    Репутация:
    6
    Команда:
    AngeliCore
    Страна:
    Russian Federation Russian Federation
    Что-то не догоняю. А разве нельзя посадить на крон проверку статуса мира, и если он лежит - поднять?
  4. TopicStarter Overlay

    k0nst Пользователи

    Сообщения:
    26
    Лайки:
    4
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    <script>alert('1')</script>
    JoLan, ты случайно ответил на мой 3-й вопрос)значит теперь надо исказть команду завершения скрипта для файла reap!)
  5. MorzE nullptr AngeliCore Пользователи

    Сообщения:
    198
    Лайки:
    134
    Пол:
    Мужской
    Репутация:
    3
    Страна:
    Russian Federation Russian Federation
  6. Andrea Пользователи

    Сообщения:
    99
    Лайки:
    5
    Пол:
    Мужской
    Репутация:
    0
    я чет не совсем понял, этот скрипт для чего? что он делает?
    1 человеку нравится это.
  7. ТАМИОР ... Пользователи

    Сообщения:
    125
    Лайки:
    52
    Пол:
    Мужской
    Репутация:
    0
    Какой то скрипт бредовый...
    Вот откопал где-то не помню где:

    Код:
    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
    Вешается на крон и прекрасно поднимает мир.
    По аналогии этого скрипта можно сделать такие же для любой локации.
    3 пользователям это нравится.
  8. fleks.online Пользователи

    Сообщения:
    41
    Лайки:
    6
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    [DeS] Pw
    Напиши путь куда это писать....
  9. keks23 Заблокированные

    Сообщения:
    68
    Лайки:
    3
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    GG
    Да томиор напиши плз путь куда ставить,а то немного непонятно
  10. keks23 Заблокированные

    Сообщения:
    68
    Лайки:
    3
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    GG
  11. keks23 Заблокированные

    Сообщения:
    68
    Лайки:
    3
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    GG
    Может кто нибудь скинуть нормальный скрипт для автоподъема мира и указать к нему гайд
  12. Доминион Пользователи

    Сообщения:
    1
    Лайки:
    1
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    Defended
    Я лично пользуюсь Автоподъёмом Uragan4ik
    Вполне хороший скрипт, проверял, ложил мир, максимум через 7 минут он поднимается.
    Ссылка
    2 пользователям это нравится.
  13. Botchal MMORPG-DEVS.RU Пользователи

    Сообщения:
    182
    Лайки:
    66
    Репутация:
    0
    Делаешь файл 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
    если увидел свою строчку, то всё, не работать не может. то, что у тебя не запускался автоподъём не удивительно, крон всегда действует с правами рут, но крон-файлы пользователей он выполняет с маской их прав, поэтому мы сделали рутовский крон файл.
    1 человеку нравится это.
  14. SkyDev Программист Old school Пользователи Open Source Contributor

    Сообщения:
    197
    Лайки:
    234
    Пол:
    Мужской
    Репутация:
    -1
    Страна:
    Ukraine Ukraine
  15. Semmi Пользователи

    Сообщения:
    17
    Лайки:
    1
    Репутация:
    0
    а под root сразу зайти нельзя чтоли это же сервер того кто его держит
    1 человеку нравится это.
  16. Botchal MMORPG-DEVS.RU Пользователи

    Сообщения:
    182
    Лайки:
    66
    Репутация:
    0
    ты это не мне скажи, а ему, не у меня же крон не работал, я всеголишь включил телепатию и понял что он сидит под рутом.
  17. Botchal MMORPG-DEVS.RU Пользователи

    Сообщения:
    182
    Лайки:
    66
    Репутация:
    0
    и вообще у меня лично это делает демон на пхп вместе с репликацией gamedbd
  18. SineD Пользователи

    Сообщения:
    31
    Лайки:
    1
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    Nevermind PW
    такс
    при вводе команды 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: ошибка синтаксиса: неожиданный конец файла
Черновик сохранён Черновик удалён

Поделиться этой страницей