возьми telnetCommunicator.py из версии под freebsd, было такое висло при попытке получить лок self.__tnC.acquire() видимо это только под виндой надо.
возьми telnetCommunicator.py из версии под freebsd, было такое висло при попытке получить лок self.__tnC.acquire() видимо это только под виндой надо.
Нет рабства безнадёжнее, чем рабство тех рабов,
Себя кто полагает свободным от оков (с)
не хочет...
Пробовал и виндовым и фришным. Причем сервер на команды отвечает (map, gunstat, vote и др). А карту не грузит![]()
тогда в miniDaemon.ini стоит проверить пути. особенно относительный путь к картам mission.base.url
и посмотреть что пишет на консоль сервер ил-2
Нет рабства безнадёжнее, чем рабство тех рабов,
Себя кто полагает свободным от оков (с)
да ini не нужны, забыл убрать строку, в miniDaemon.py удалите 96 строку self.__missionConf = IniFile(self.__config['MAIN']['mission.dir'] + self.__missionName + '.ini', )
Нет рабства безнадёжнее, чем рабство тех рабов,
Себя кто полагает свободным от оков (с)
Спасибо господа вирпилы за помощь и советы - запустил таки я миниДемона в работу!Немного потестил - правда, сразу оговорюсь, на своем тренировочном сервере, практически без нагрузки - 3-4 пилота и 5 карт в ротации. Работает, чертяка
Ось - Debian 4 Etch, il2 dedicated 4.08m. Вариант Демона - виндовый, в коде miniDaemon.py коментились строки: 96
и 466-468Код:# self.__missionConf = IniFile(self.__config['MAIN']['mission.dir'] + self.__missionName + '.ini', )
Заработало практически сразу все, были обычные для чайника косяки с прописыванием путей в miniDaemon.ini Сейчас там следующее:Код:# exit(1) # finally: # pass
Правда, несколько непонятна логика работы модуля, определяющего, админ ли на сервере. В файле admin.txt пишу IP машин, с которых заходит админ - по одному ип в строке - работает только последний в списке. Кроме того, сервак смотрит на внешку из под NATа - снаружи, с внешним IP захожу админом, из внутренней сети - пускает, но говорит "Вы не Админ!" - абидна,понимашь!Код:mission.base.url Net/dogfight/daemon/ mission.dir /game/.wine/drive_d/IL2server/Missions/Net/dogfight/daemon/
Может, быть доработать модуль, чтобы Админом считался юзверь, зашедший _С определенного ИП___И___С определенным ником ?
З.Ы. В коде miniDaemon.py в строке 443поменял наКод:self.__console.writeMessage("Слудующая карта: %s"%nextmap, None)
Уж больно глаз режетКод:self.__console.writeMessage("Следующая карта: %s"%nextmap, None)![]()
На всяк случай распишу поподробнее, про пути и команды запуска:
файлы серверной части Ила лежат по пути:
/game/.wine/drive_d/IL2server/
стартовый файл - экзешник запускаемый под вайном - il2server
соответственно запускаю процесс таким скриптом:
il2start
файлы демона лежат здесь:Код:#! /bin/bash screen -d -m -S il2 wine d:/il2server/il2server
/game/miniDaemon/
стартовый скрипт - rundaemon.sh
соответственно запускаю процесс таким скриптом:
mDstart
содержимое файла miniDaemon.iniКод:#! /bin/bash cd /game/miniDaemon screen -d -m -S miniD ./rundaemon.sh
Главное правильно прописать во эти путиКод:[MAIN] mission.base.url Net/dogfight/daemon/ mission.dir /game/.wine/drive_d/IL2server/Missions/Net/dogfight/daemon/ mission.time 3600 ReportPeriod 600 vote.percent 50 [DeathControl] Limit 10 BanTime 240 BanTime1 360 BanTime2 420 BanTime3 180 [Telnet] host 192.168.5.15 port 20001
mission.base.url
mission.dir
host по идее надо ставить 127.0.0.1, но у меня заработало с указанием внутреннего IP в локалке.
Запустили у себя под фришкой сервер 4.10, так же запущен минидеймон под неё же. Все вроде нормально, но примерно раз в 3 дня иногда и раньше минидеймон виснет(перестаёт реагировать на команды, нет ротации карт), перезапускаем опять все работает. Проблема пока не решена. Чем ему можно помочь?
Крайний раз редактировалось Кроу; 29.01.2011 в 18:19.
Если проблема связана с пустыми и/или кириллическими именами пользователей, то в версии 4,10 сервера есть переменная filterUserNames, установив которую, можно отфильтровать пользователей. Цитирую из 4.10_Guide.pdf :
Player Name & Callsign Filtering
Server can filter out all non-latin & non-cyrillic characters from players name & callsign by
adding filterUserNames=1 to the [NET] section of conf.ini.
Только что проверил, добавление filterUserNames=1 в секцию [NET] файла confs.ini приводит к следующим результатам:
1. Наличие пробела либо другого не латинского либо не кириллического символа в нике пилота не мешает логину на сервер, НО в логах сервера наблюдается ОТСУТСТВИЕ пробела в нике пилота. Например ник Nike "Targon" приводится к виду NikeTargon
2. Наличие кириллических символов в нике пилота НЕ приводит к падению даймона, НО команды управления даемоном не проходят.
3. Даемон в данных условиях не падает.
Крайний раз редактировалось Nike "Targon"; 01.02.2011 в 09:40.
Так же проверили у себя. По первому пункту та же самая картина.По второму и третьему нет результатов так как даймон вообще отказался запускаться с этой строкой. При удалении строчки filterUserNames=1 запустился, но опять же при входе на сервер с пробелом в нике останавливается. Не пойму почему результаты разные ведь юзаем мы одного и того же даймона и настройки все сделаны как описано в этой теме. Кстати всё таки почему conf.ini., куда делась s, опечатка?
mar$ кстати удаление строчки checkRunTime=2 не привело к желаемым результатам, мониторинг так же пропадает после входа 6 -го человека на сервер.
Крайний раз редактировалось Кроу; 01.02.2011 в 10:05.
Спасибо. Только хочу уточнить это ты виндовый выложил или на фришку? У меня фришный стоит.
Здаётся мне что во фряшном даймоне есть где то ошибка, какую то строку видимо надо править. Вот только какую?
А что если виндовый на фришке запустить, не пройдет ли такой вариант?
Ну значит на выходных займусь. Сначала перезалью фришный, если ситуация та же будет будем пробовать виндового ставить. О результатах потом отпишусь.
Значит далее что получилось. Для начала лог даймона
Пару строчек сверху нехватает, но из этого видно что даймону ненравятся ники с пробелами, но команда кик почему то сервером невыполняется.INFOaemon
ilot [=CPS= Andrey] has disconnected
Exception in thread Thread-2:
Traceback (most recent call last):
File "/usr/local/lib/python2.6/threading.py", line 532, in __bootstrap_inner
self.run()
File "miniDaemon.py", line 252, in run
self.__playerConnected(userConnect.match(line).groups())
File "miniDaemon.py", line 271, in __playerConnected
self.__console.executeCommand('kick \"%s\"' % theUserName)
AttributeError: 'Console' object has no attribute '_Console__console'
INFOaemon:Stopping deamon...
INFOaemon
eamon stopped
INFOaemon:Telnet communicator stopped
Press any key to continue...
далее анализируя файл miniDaemon.py была найдена 268 строка в которой были удалены пробелы в кавычках.
Оригинал
редактированнаяif notok==1 or string.find(theUserName,' ')>0 or theUserName=='' or theUserName[-1]=='0':
После этого минидаймон стал нечувствительным к неправильным никам и его остановки прекратились.if notok==1 or string.find(theUserName,'')>0 or theUserName=='' or theUserName[-1]=='0':
Правда заработало это только на виндовом, во фришном изменения не привели к нужным результатам.
После этого вылезла новая проблема с админом.Все сделали как было описано выше но в итоге все равно пишет "Вы не админ"
Так же остается проблема мониторинга сервера после входа 6-го человека.
Господа, подскажите, пожалуйста. Возможно ли на современных линуксах или бзд поднять Ил-2 Штурмовик, Версия 4.09. И чтобы сервер позволял использовать моды.
1. Берете сервак с винды.
2. Переносите на юникс (копируете, монтируете, etc).
3. Запускаете под Wine.
4. Profit.
Если нужен серверный ДевайсЛинк, то брать Wine >= 1.6.
Читайте статью, задавайте вопросы, если возникнут.
Спасибо за ответ. До той темы добрался сам поиском. Понял, что в лоб через Wine все делается.
Несущественно, что сервер старый - 4.09?
В каком случае мне нужен il2dsd (и живой ли он)? Чисто для "демонизации" его?
Что такое девайслинк? Подключение устройств (джойстика) в серверу? В рассматриваемом варианте клиенты на виндоузе.
И еще вопрос, есть кто-то, кто готов поднять такой сервер за плату? Пока в теории.
1. Номер версии - личное дело каждого. Хоть он и будет старый, но пенсию-то ему платить не притется
2. il2dsd = il2ds daemon, да, это только для запуска сервера в фоне + с ним идет скрипт, умеющий выкачать сервак по патчам и распаковать его в нужное место. Скриптом можно воспользоваться отдельно ничего не устанавливая (кроме curl, unzip и wget), например, чтобы получить сервер 4.09 достаточно выполнить
патчи будут лежать в '/tmp', сервер - в '/opt/games/il2/ds'. Перед скачиванием проверьте права доступа к директориям.Код:bash <( curl https://raw2.github.com/IL2HorusTeam/il2dsd/master/scripts/il2ds-install ) -d /tmp -o /opt/games/il2/ds -v 409
3. ДевайсЛинк - [это такой протокол], который работает поверх UDP. На клиенте (в одиночном режиме) позволяет считывать информацию с приборов, элементов управления и управлять последними. На сервере можно использовать как радар в реальном времени и следить за координатами игроков и объектов.
4. Про хостинг ничего не скажу.