Зачем он нужен?

Многие админы серверов сталкиваются с проблемой падения или остановки их сервера, есть куча логичных так и не очень ситуаций, когда это происходит:

  • Самостоятельный reboot
  • Ваш хостер проводил профилактику и снова же — reboot
  • Ваш сервер крашнулся сам по себе
  • Ваш сервер крашнули по какой-то неведомой уязвимости
  • У Вас проблемы с NPL лицензией или соединением и сервер останавливается сам каждые два часа

Для решения всех, а особенно последних проблем есть просто, но эффективный скрипт, который на порядок удачнее всех мне известных способов автозапуска.

Выглядит он так:


#!/bin/bash

TSS=`ps ax | grep ts3server | grep -v grep | wc -l`

if [ $TSS -eq 1 ]
 then
 exit
 else
 /путь_до_вашего_TS_сервера/ts3server_startscript.sh start
 fi
 

Какова его механика?

Скрипт анализирует список запущенных задач, ищет ту, в которой присутствует искомое значение «ts3server», если оно есть — он сбрасывается.

Если же нет, вступает в силу вторая часть скрипта, она, при отсутствии в процессах сервера TS (упал, выключили, уронили), запускает его обратно классической командой запуска.

Все очень просто.

Готовый скрипт выглядит вот так:

#!/bin/bash

TSS=`ps ax | grep ts3server | grep -v grep | wc -l`

if [ $TSS -eq 1 ]
then
exit
else
/home/ts/teamspeak3-server_linux_amd64/ts3server_startscript.sh start

Как заставить его работать?

Мне на ум не приходит ничего проще чем банальный cron

* * * * * /home/ts/teamspeak3-server_linux_amd64/tss.sh > /dev/null

Эта команда в кроне означает, что каждую секунду сервер запускает наш скрипт, который сохранен в файле tss.sh.

Внимание!
Cron должен быть запущен под пользователем, на котором запущен сервер TS.
Не root!!!

Чем он лучше других скриптов автозапуска?

Постоянно мониторит ситуацию
Бдит 24 часа в сутки \ 7 дней в неделю \ 365 дней в году =)
Сразу же поднимет сервер!
Ни минуты простоя!
Полная автомтизация
Настроил и забыл. Чтобы ни случилось, сервер поднимется сам =)

Когда не поможет?

  1. Если сервер не включился сам — скрипт не запустится, и программа сервера TS не стартанет
  2. Если при запуске произошла неразрешимая критическая ошибка (убилась база, умер хард с частью файлов или еще какая катастрофа)
  3. Если есть проблемы с лицензией и слотами (к примеру у вас был выключенный виртуальный сервер на 512 слотов, а при перезагрузке он почему-то решил включиться и сожрал все положенные по лицензии слоты)