В последнее время сборки от Карателя у меня на сервере страдают фризами. Сервер намертво ловил фриза и не мог из него выбраться. установка значения MaxCoreStuckTime = 60 все так же не помогла исправить это положение. Потому набросал простенький скрипт и поставил его на авто выполнение каждые 10 минут. Возможно кому нибудь он и пригодится. У меня он словил 100% фризов. Тестировался в течении 3 недель.
Собственно сам скрипт:
Код:
#!/bin/sh
DATE=$(date)
FREEZ=$(mysql -u<username> -p<password> realmd < /opt/mangos/etc/freezcheck/check.sql | grep "[0|1]")
case $FREEZ in
0)
echo '['$DATE'] Проверка на фриз сервера прошла успешно.'
;;
1)
echo '['$DATE'] Зависание сервера. Сервер перезапущен.'
/opt/mangos/stop
/opt/mangos/start
;;
*)
echo '['$DATE'] Неверное значение ответа мускуля: '$FREEZ
;;
esac
А вот файл с запросом для этого скрипта check.sql:
Код:
SELECT IF ((UNIX_TIMESTAMP() - (`starttime`+`uptime`)) >= 700 , 1, 0) AS 'freez' FROM `uptime` ORDER BY `starttime` DESC LIMIT 1