Перейти к содержанию
Авторизация  
John_Smith

[CRMP|SAMP]Автоматический рестарт

Рекомендуемые сообщения

John_Smith

Доброго времени суток, сейчас я расскажу вам о "Автоматическом рестарте". Я думаю многие видели на серверах в определенное время происходит рестарт сервера, при этом администрации не приходится вводить команду. Сервер делает это автоматически. Как это сделать?

 

В Public OnPlayerUpdate:

PHP код:

new h, m, s;
  gettime(h, m, s); // Узнаем время
   if(h == 1 && m == 25 s == 0) // Если 1 час 25 минут (Можно заменить время на свое)
   {
    format(string, 128, "Уважаемые игроки, через 5 минут произойдет АвтоРестарт."); // Тест, отправляемый в чат
        SendClientMessageToAll(COLOR_WHITE, string);// Выводим сообщение в общий чат
   }
   if(h == 1 && m == 30 s == 0) // Если 1 час 30 минут и 0 секунд (Можно заменить время на свое)
   {
    SaveAccounts(); // Замените эту строчку на функции сохранения у вас в моде (С помощью вашей команды рестарта можно их найти (там они будут написаны))
    format(string, 128, "Происходит автоматический рестарт сервера, подождите 10-15 секунд..."); // Тест, отправляемый в чат
        SendClientMessageToAll(COLOR_WHITE, string);// Выводим сообщение в общий чат
    SendRconCommand("gmx"); // Делаем рестарт
  }
Автор: Я.

Внимание! Секунды не убирать иначе каждую секунду будет рестарт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Кирилл Сергеевич

Доброго времени суток, сейчас я расскажу вам о "Автоматическом рестарте". Я думаю многие видели на серверах в определенное время происходит рестарт сервера, при этом администрации не приходится вводить команду. Сервер делает это автоматически. Как это сделать?

 

В Public OnPlayerUpdate:

PHP код:

new h, m, s;
gettime(h, m, s); // Узнаем время
if(h == 1 && m == 25 s == 0) // Если 1 час 25 минут (Можно заменить время на свое)
{
format(string, 128, "Уважаемые игроки, через 5 минут произойдет АвтоРестарт."); // Тест, отправляемый в чат
SendClientMessageToAll(COLOR_WHITE, string);// Выводим сообщение в общий чат
}
if(h == 1 && m == 30 s == 0) // Если 1 час 30 минут и 0 секунд (Можно заменить время на свое)
{
SaveAccounts(); // Замените эту строчку на функции сохранения у вас в моде (С помощью вашей команды рестарта можно их найти (там они будут написаны))
format(string, 128, "Происходит автоматический рестарт сервера, подождите 10-15 секунд..."); // Тест, отправляемый в чат
SendClientMessageToAll(COLOR_WHITE, string);// Выводим сообщение в общий чат
SendRconCommand("gmx"); // Делаем рестарт
}
Автор: Я.

Внимание! Секунды не убирать иначе каждую секунду будет рестарт.

 

Мне кажется автор не ты.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SHOROOP

Сколько раз говорить, что выгрузка ГМа через /rcon gmx некорректна и может в стеке такую кучу данных смешать, что неизвестно, насколько после такого "рестарта" стабильно будет ГМ работать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
John_Smith

Сколько раз говорить, что выгрузка ГМа через /rcon gmx некорректна и может в стеке такую кучу данных смешать, что неизвестно, насколько после такого "рестарта" стабильно будет ГМ работать.

 

Ну я только такую систему смог написать...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
John_Smith

 

Доброго времени суток, сейчас я расскажу вам о "Автоматическом рестарте". Я думаю многие видели на серверах в определенное время происходит рестарт сервера, при этом администрации не приходится вводить команду. Сервер делает это автоматически. Как это сделать?

 

В Public OnPlayerUpdate:

PHP код:

new h, m, s;
gettime(h, m, s); // Узнаем время
if(h == 1 && m == 25 s == 0) // Если 1 час 25 минут (Можно заменить время на свое)
{
format(string, 128, "Уважаемые игроки, через 5 минут произойдет АвтоРестарт."); // Тест, отправляемый в чат
SendClientMessageToAll(COLOR_WHITE, string);// Выводим сообщение в общий чат
}
if(h == 1 && m == 30 s == 0) // Если 1 час 30 минут и 0 секунд (Можно заменить время на свое)
{
SaveAccounts(); // Замените эту строчку на функции сохранения у вас в моде (С помощью вашей команды рестарта можно их найти (там они будут написаны))
format(string, 128, "Происходит автоматический рестарт сервера, подождите 10-15 секунд..."); // Тест, отправляемый в чат
SendClientMessageToAll(COLOR_WHITE, string);// Выводим сообщение в общий чат
SendRconCommand("gmx"); // Делаем рестарт
}
Автор: Я.

Внимание! Секунды не убирать иначе каждую секунду будет рестарт.

 

Мне кажется автор не ты.

 

Думай как хочешь мне без разницы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
reAL

Сколько раз говорить, что выгрузка ГМа через /rcon gmx некорректна и может в стеке такую кучу данных смешать, что неизвестно, насколько после такого "рестарта" стабильно будет ГМ работать.

 

Интересно, а как же ты делаешь рестарт?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SHOROOP

 

Сколько раз говорить, что выгрузка ГМа через /rcon gmx некорректна и может в стеке такую кучу данных смешать, что неизвестно, насколько после такого "рестарта" стабильно будет ГМ работать.

 

Интересно, а как же ты делаешь рестарт?

 

Прибиваю процесс сервера через /rcon exit, а шелл-скрипт на хосте по крону каждые полсекунды проверяет список процессов на наличие запущенного бинарника сервера адаптации. Если в списке процессов указанного нет - скрипт запускает процесс.

 

Дело в том, что команда /rcon gmx не перезагружает ГМ как таковой, а переходит к следующему ГМ, указанному в конфиге. Если указан только один ГМ - понятно, что его и перезапустит. Однако ФС вместе с ГМ не перезапускаются, память не очищается, в результате - в стеке образуется мешанина из данных, даже если в самом ГМ нужные ячейки памяти очищаются.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Amfy

 

Сколько раз говорить, что выгрузка ГМа через /rcon gmx некорректна и может в стеке такую кучу данных смешать, что неизвестно, насколько после такого "рестарта" стабильно будет ГМ работать.

 

Интересно, а как же ты делаешь рестарт?

 

Через хостинг наверное..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
John_Smith

Up

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Danil_Russkiy

 

 

Доброго времени суток, сейчас я расскажу вам о "Автоматическом рестарте". Я думаю многие видели на серверах в определенное время происходит рестарт сервера, при этом администрации не приходится вводить команду. Сервер делает это автоматически. Как это сделать?

 

В Public OnPlayerUpdate:

PHP код:

new h, m, s;
gettime(h, m, s); // Узнаем время
if(h == 1 && m == 25 s == 0) // Если 1 час 25 минут (Можно заменить время на свое)
{
format(string, 128, "Уважаемые игроки, через 5 минут произойдет АвтоРестарт."); // Тест, отправляемый в чат
SendClientMessageToAll(COLOR_WHITE, string);// Выводим сообщение в общий чат
}
if(h == 1 && m == 30 s == 0) // Если 1 час 30 минут и 0 секунд (Можно заменить время на свое)
{
SaveAccounts(); // Замените эту строчку на функции сохранения у вас в моде (С помощью вашей команды рестарта можно их найти (там они будут написаны))
format(string, 128, "Происходит автоматический рестарт сервера, подождите 10-15 секунд..."); // Тест, отправляемый в чат
SendClientMessageToAll(COLOR_WHITE, string);// Выводим сообщение в общий чат
SendRconCommand("gmx"); // Делаем рестарт
}
Автор: Я.

Внимание! Секунды не убирать иначе каждую секунду будет рестарт.

 

Мне кажется автор не ты.

 

Думай как хочешь мне без разницы.

 

Аааа

Вы задолбали "Кажется молиться надо!".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
reAL

 

 

Сколько раз говорить, что выгрузка ГМа через /rcon gmx некорректна и может в стеке такую кучу данных смешать, что неизвестно, насколько после такого "рестарта" стабильно будет ГМ работать.

 

Интересно, а как же ты делаешь рестарт?

 

Прибиваю процесс сервера через /rcon exit, а шелл-скрипт на хосте по крону каждые полсекунды проверяет список процессов на наличие запущенного бинарника сервера адаптации. Если в списке процессов указанного нет - скрипт запускает процесс.

 

Дело в том, что команда /rcon gmx не перезагружает ГМ как таковой, а переходит к следующему ГМ, указанному в конфиге. Если указан только один ГМ - понятно, что его и перезапустит. Однако ФС вместе с ГМ не перезапускаются, память не очищается, в результате - в стеке образуется мешанина из данных, даже если в самом ГМ нужные ячейки памяти очищаются.

 

То есть, если прописан 1 GM, но FS нету, то сервер перезагружается, память отчищается и всё гуд? И как узнать что нужные мне ячейки не отчищаются, heapspace()'ом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SHOROOP

Насчет ситуации с 1 ГМ и без ФС - не знаю, не тестил. По логике, все должно работать, на практике - не проверял.

Узнать, сколько еще места в стеке доступно, действительно можно через heapspace().

Но как по мне - проще и корректнее будет все-таки выгружать бинарник сервера целиком.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
John_Smith
Тема закрыта! У кого вопросы пишите в ЛС.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.