Linux: Что я должен использовать для запуска терминальных программ на основе календарной системы? - PullRequest
0 голосов
/ 13 октября 2011

Извините за действительно двусмысленный вопрос, я действительно понятия не имею, как его сформулировать, хотя, надеюсь, я могу дать вам более подробную информацию здесь.

Я занимаюсь разработкой проекта, в котором пользователь может войти на веб-сайт и заказатьсервер для запуска игры в течение определенного времени.Когда время истекло, сервер перестает работать, и игроки на сервере запускаются.Часть сайта не проблема, я делаю это на PHP, и все работает.Он имеет систему календаря для бронирования сервера и может генерировать конфигурационные файлы в зависимости от того, что хочет пользователь.

Мой вопрос заключается в том, что я должен использовать для запуска определенного игрового сервера на Linux-коробке с этими файлами конфигурации направильное время?У меня это работает с bash-скриптами и cron, но это выглядит очень не элегантно.Он буквально использует FTP для подключения к веб-сайту, поэтому он может загрузить все необходимые файлы конфигурации и поместить их в папку для этой игры и времени.Мне было интересно, есть ли лучший способ сделать это.Возможно, пишу программу на C, но я не уверен, как это сделать.

(Я не прошу кого-то держать меня за руку и говорить мне «напишите этот код здесь», только некоторые идеилучший способ решения этой проблемы)

Большое спасибо, ребята!

Редактировать: веб-сервер - совершенно другая машина.Теоретически я хотел бы иметь более одного игрового сервера, где каждый из них «подключается» (в данный момент FTP) к веб-серверу, получает файл, в котором говорится, что он должен делать в определенное время, и загружает все связанные файлы, а затем отключается.

Ответы [ 2 ]

0 голосов
/ 13 октября 2011

Вам нужен распределенный планировщик задач. С этим вы можете:

  1. Запланировать запуск команды «X» в определенное время.
  2. Укажите машину (или попросите ее выбрать машину из пула доступных машин)

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

Вы можете взглянуть на: http://www.acelet.com/super/SuperWatchdog/index.html

РЕДАКТИРОВАТЬ:

Еще одна опция: http://jobscheduler.sourceforge.net/

0 голосов
/ 13 октября 2011

Я думаю, в лучше подходит для выполнения одноразовых заданий, чем cron.

Для лучшего подхода к загрузке файлов и т. Д. Вы должны предоставить более подробную информацию о настройках (например, веб-сайт и игровой сервер, находятся ли они на одной машине? Или в той же сети? И т. Д. И т. Д.)

...