Изоляция серверов с помощью add_path

Тема в разделе "F.A.Q", создана пользователем olegod, 13 авг 2012.

  1. olegod

    olegod Новичок

    Здравствуйте, задача - создать панель управления, позволяющую нескольким пользователям динамически создавать сервера tw, нужно изолировать сервера друг от друга, подскажите, если указать определённую директорию в add_path, то карты, базы с рекордами, база с банами и т.п. будут хранится только в этой директории? Заранее спасибо!
     
  2. Matodor

    Matodor Гл. Администратор Команда форума

    Простой в новой папке создаешь папку с картами, ну и сервер запускаешь с определенным конфигом.
     
  3. Shahan

    Shahan Новичок

    olegod, если скажешь какая ОС и на каком языке панель - помогу поконкретнее, ибо сам с этим парился.
     
  4. olegod

    olegod Новичок

    debian 6, php
    Не понял, вы имеете ввиду что надо копировать и исполняемый файл сервера? Это не подходит, это расточительная трата ресурсов.
     
  5. Matodor

    Matodor Гл. Администратор Команда форума

    Teeworlds и расточительная трата ресурсов :D

    Ну тогда что мешает в одной папке запускать сервер с определенным конфигом?
    Когда то тоже была мысль сделать панель, там просто через скрипты запускаешь процесс -> запоминаешь его pid -> другим скриптом рестартишь или выключаешь. Через веб скрипты запускаешь. т.е на сервер еще нужен небольшой http-сервер.
     
  6. olegod

    olegod Новичок

    Да это всё уже реализовано, php через ssh2 запускает сервера, вытаскивая данные из БД, если нужно остановить сервер - парсит screen -ls... Проблема в том что сервера могут мешать друг другу, например, ddrace сохраняет счёт в своей директории, в итоге на всех ddrace сервера один счёт, то же самое с картами, например с одним и тем же названием разные пользователи не смогут создать карту, то же с банами...
     
  7. Shahan

    Shahan Новичок

    Такая панель мне очень напоминает Teevision.eu. Если ты не делаешь конкурирующий сайт, то разработчик teevision тебе вполне может помочь - мне во всяком случае помог.

    В ddrace моде есть опция конфига - sv_score_folder - она задает папку хранения рекордов.

    Но по моему проще всего для каждого сервера создавать копию бинарника, свой конфиг и папку с картами. А дальше запускать сервера через
    PHP:
    shell_exec("screen -dmS <название окна>  ./<название бинарника> -f <название конфига>.cfg");
     
    Matodor нравится это.
  8. olegod

    olegod Новичок

    Хм... а как поступил разработчик Teevision?)
     
  9. Shahan

    Shahan Новичок

    По моему этим самым простым путём :) Тебе лучше спросить у него по скайпу: suiram1212
     
  10. olegod

    olegod Новичок

    И ещё, вы вместо ssh2 используете shell_exec, проблем с правами не возникает?
     
  11. Shahan

    Shahan Новичок

    Нет. Я использую php скрипт только для рестарта серверов в случае падения, у меня скрипт запускает crontab ежеминутно. Там проблем с правами быть не может, достаточно .php файлу прописать chmod 777.