Давно задавался вопросом об автоподнятии сервера при падении. Юзая поиск в инете практически ничего не нашел касаемо поднятия л2 сборок. Но тут наткнулся на другой подобный скрипт. Вообщем немного переделав под свои потребности - вышло следующее:
Quote
#! /bin/sh
RES="/tmp/result"
MLOG="/tmp/`date +%Y-%m-%d_%H-%M-%S`__gs___mysql_repair_log"
HOST="айпи_сервера"
PORT="7777"
telnet $HOST $PORT &> $RES &
sleep 5
if cat $RES |grep Unable; then killall -9 java
myisamchk --silent --force --fast --update-state /var/lib/mysql/l2rt/*.MYI &> $MLOG &
sleep 40
cd /usr/local/games/interlude/login/
./LoginServer_loop.sh &
sleep 40
cd /usr/local/games/interlude/gameserver/
./GameServer_loop.sh &
else echo "OK"; rm $RES; exit;
fi
делает следующее:
1. конектимся по телнету на заданный порт
2. если порт занят, то все в порядке, выход
3. если порт свободен, то телнет выдаст ошибку
4. перенаправлем текст ошибки в файл и потом считываем
5. если есть совпадения (grep Unable), то убиваем все процессы явы
6. проверяем базу на наличие повреждений
7. запускаем логин-сервер
8. запускаем гейм-сервер
все это записываем в файл. выставляем привилегии 777 и добавляем в кронтаб. запускать из под рута.
в скрипте пути+айпи_сервера правим под себя
Если есть какие-то предложения или замечания - высказываемся. Хотелось бы услышать мнение профакоВ 