Приветствую Вас Гость | RSS

jimbot.moy.su

Понедельник, 29.04.2024, 12:36
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Обсуждение чат-бота от ExLy » Техническая поддержка » Автоматизация запуска бота на VDS (Запуск бота на VDS)
Автоматизация запуска бота на VDS
tashanov93Дата: Понедельник, 26.10.2009, 15:06 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 113
Награды: 4
Репутация: 223
Статус: Offline
На сей раз я расскажу о собственном опыте автоматического запуска бота на сервере с установленным Debian

В чем состоит проблема?
Нужно автоматически запускать бота при перезагрузке сервера.
Нужно запускать бота после его падения по любой причине.
Нужно периодически перезапускать бота, так как из-за утечек ресурсов через некоторое время бот создаст излишнюю нагрузку на систему.
При этом необходимо определять что бот уже запущен, чтобы не запускать лишних копий.

Я решил эти вопросы с помощью небольшого скрипта, который привожу ниже:

Code
#! /bin/sh  

JAVA=/usr/bin/java  
JAR_HOME=/home/spec/bot  
JAR=bot.jar  
PID=$JAR_HOME/bot.pid  
STATE=$JAR_HOME/state  

d_start() {  
      if [ -f $PID ]; then  
   PID_VALUE=`cat $PID`  
   if [ ! -z "$PID_VALUE" ]; then  
       PID_VALUE=`ps ax | grep $PID_VALUE | grep -v grep | awk '{print $1}'`  
       if [ ! -z "$PID_VALUE" ]; then  
    exit 1;  
       fi  
   fi  
      fi  
        
      PREV_DIR=`pwd`  
      cd $JAR_HOME  
      exec $JAVA -Xmx50m -jar $JAR &  
      echo $! > $PID  
      cd $PREV_DIR  
}  

d_stop() {  
      if [ -f $PID ]; then  
   PID_VALUE=`cat $PID`  
   if [ ! -z "$PID_VALUE" ]; then  
       PID_VALUE=`ps ax | grep $PID_VALUE | grep -v grep | awk '{print $1}'`  
       if [ ! -z "$PID_VALUE" ]; then  
    echo "Stop" > $STATE;  
    WAIT_TIME=0  
    while [ `ps ax | grep $PID_VALUE | grep -v grep | wc -l` -ne 0 -a "$WAIT_TIME" -lt 20 ]  
    do  
        sleep 1  
        WAIT_TIME=$(expr $WAIT_TIME + 1)  
    done  
    if [ `ps ax | grep $PID_VALUE | grep -v grep | wc -l` -ne 0 ]; then  
        kill -9 $PID_VALUE  
    fi  
       fi  
   fi  
   rm -f $PID  
      fi  
}  

case "$1" in  
      start)  
   d_start  
      ;;  
      stop)  
   d_stop  
      ;;  
      restart)  
   d_stop  
   d_start  
      ;;  
      *)  
   echo "Usage: $0 {start|stop|restart}" >&2  
   exit 1  
      ;;  
esac  

exit 0

В переменную JAR_HOME записываем путь до папки с нашим ботом, а в переменную JAR - имя самого jar файла бота. Сохраните текст скрипта в файле в вашем домашнем каталоге, например "bot.sh", затем предоставьте ему права на запуск.

Чтобы запустить бота, нужно набрать команду (находясь в домашней иректории): ./bot.sh start

Если бот уже запущен, команда ничего не сделает. После запуска в директории бота будет создан файл "bot.pid" с идентификатором процесса, именно по нему и определяется факт работы бота.

Для остановки бота наберите команду: ./bot.sh stop

Эта команда сначала попытается остановить бота обычным способом - записав "Stop" в файл "state". Если бот завис - процесс будет уничтожен принудительно.

Для перезапуска бота нужно использовать команду: ./bot.sh restart

Теперь запишем задание в cron, чтобы наш бот запускался автоматически.

Любимым текстовым редактором создадим файлик со следующими строчками:
*/30 * * * * /home/spec/bot/bot.sh start >/dev/null 2>&1
* 4 * * * /home/spec/bot/bot.sh restart >/dev/null 2>&1

Обзовем наш файлик, к примеру, "cron.tab". Добавим задание в cron от имени нашего пользователя следующей командой: crontab ./cron.tab

Набрав "crontab -l" можно убедиться, что наши задания добавлены. Команда "crontab -r" позволяет удалить все задания, если они больше не нужны.

Теперь наш бот будет запускаться в течение получаса после перезагрузки сервера, отключения в админке или падения бота, а так же перезагружаться каждые сутки в 4 часа утра.

Внимание!!! Информация предоставлена FENIX

 
WitekДата: Пятница, 18.02.2011, 00:26 | Сообщение # 2
Сержант
Группа: Пользователи
Сообщений: 24
Награды: 0
Репутация: 0
Статус: Offline
Dim@x amp; Warik777 от 1 ДЕКАБРЯ.rar качай http://filez.mobi/5822

Добавлено (18.02.2011, 00:05)
---------------------------------------------
smile :) smile :) smile :) smile :) smile :) smile :) smile

 
Форум » Обсуждение чат-бота от ExLy » Техническая поддержка » Автоматизация запуска бота на VDS (Запуск бота на VDS)
  • Страница 1 из 1
  • 1
Поиск: