|
http://forum.quake2.com.ru forum of russian quake2 portal
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Amok[MEn] lpw
Зарегистрирован: 14.08.2009 Сообщения: 62
|
Добавлено: Пт Окт 15, 2010 3:50 am Заголовок сообщения: Как автозапускаете q2proded в linux? |
|
|
Компилил так:
Код: |
./configure --disable-client --enable-server --enable-png --enable-jpg --enable-curl --prefix=/home/amok --datadir=quake2 --libdir=quake2 --bindir=quake2 --mandir=quake2/q2pro/man --appdir=quake2/q2pro/applications --pixdir=quake2/q2pro/pixmaps
Build client no
Build server yes
Build baseq2 no
Data directory /home/amok/quake2
Game libraries /home/amok/quake2
Binaries /home/amok/quake2
Man pages /home/amok/quake2/q2pro/man
Desktop files /home/amok/quake2/q2pro/applications
Pixmap files /home/amok/quake2/q2pro/pixmaps
Home directory ~/.q2pro
zlib support yes
i386 assembly yes
|
Пускаю так:
Код: |
/home/amok/quake2/q2proded +set game openffa +set logfile 3 +exec openffa.cfg +exec q2server.cfg
|
Пускается нормально.
Пытаюсь автозапуск в своей ubuntu оформить, /etc/rc.local:
Код: |
/home/amok/quake2/myq2pro
|
Скрипт myq2pro содержит тот же самый абсолютный путь:
Код: |
/home/amok/quake2/q2proded +set game openffa +set logfile 3 +exec openffa.cfg +exec q2server.cfg |
Естественно, было сделано
.
При перезагрузке ubuntu-сервера, q2proded не запускается. В общих логах: /var/log/daemon.log и /var/log/syslog вроде ничего по grep "q2" нет. |
|
Вернуться к началу |
|
|
[SkulleR] papa
Зарегистрирован: 21.11.2003 Сообщения: 467
|
Добавлено: Пт Окт 15, 2010 5:47 am Заголовок сообщения: |
|
|
Скрипты из rc.local запускаются с правами рута, а q2proded работать с рутовыми правами сознательно отказывается. Запускать надо как-то так:
Код: |
su -c /home/amok/quake2/myq2pro - amok
|
Цитата: |
В общих логах: /var/log/daemon.log и /var/log/syslog вроде ничего по grep "q2" нет |
Там ничего и не будет, q2proded туда не пишет. |
|
Вернуться к началу |
|
|
LitRium СЕРЫЙ КАРДИНАЛ (ГОПНИК)
Зарегистрирован: 18.03.2008 Сообщения: 1005 Откуда: Western Siberia
|
Добавлено: Пт Окт 15, 2010 10:34 am Заголовок сообщения: |
|
|
сделай скрипт q2pro.sh
#!/bin/sh
killall q2proded
echo "Starting Quake2 Pro server"
sleep 1
screen -A -m -d -S quake-pro ./q2proded +set game "твой мод" +fs_restart set net_ip xxx.xxx.xxx.xxx +exec твой конфиг.cfg
для q2proded и скрипта права 777
в rc.local пропиши
sudo /home/amok/quake2/q2pro.sh
проверяем после рестарта, процесс запущен
ps -C q2proded |
|
Вернуться к началу |
|
|
Amok[MEn] lpw
Зарегистрирован: 14.08.2009 Сообщения: 62
|
Добавлено: Пт Окт 15, 2010 1:20 pm Заголовок сообщения: |
|
|
[SkulleR] писал(а): |
Скрипты из rc.local запускаются с правами рута, а q2proded работать с рутовыми правами сознательно отказывается.
Там ничего и не будет, q2proded туда не пишет. |
Вот ведь: знание - сила! ) Помню как-то экспериментировал с запуском ещё родного quake2 в режиме сервера, так мне светлая мысль с запуском от юзера по su уже приходила! Попробую, спасибо.
А куда пишет q2proded если не стартанул? В лог консоли он, как я понимаю, писать ещё не может. Вот и искал я в системных логах информацию почему он не завёлся. |
|
Вернуться к началу |
|
|
Amok[MEn] lpw
Зарегистрирован: 14.08.2009 Сообщения: 62
|
Добавлено: Пт Окт 15, 2010 1:22 pm Заголовок сообщения: |
|
|
Спасибо, конечно, за помощь, но я как раз от screen'а ухожу ) |
|
Вернуться к началу |
|
|
Amok[MEn] lpw
Зарегистрирован: 14.08.2009 Сообщения: 62
|
Добавлено: Пт Окт 15, 2010 5:18 pm Заголовок сообщения: |
|
|
[SkulleR] писал(а): |
q2proded туда не пишет. |
Так, у меня назрел ещё вопрос, по логгированию.
Стандартная квака с лог файлом поступает так:
Цитата: |
logfile
Type: Toggle
Default: 0
Description: Toggle the logging of console messages.
Values:
0 – Disable logging.
1 – Enable buffered logging where the log file is only updated when the text buffer fills up. The log file will be deleted and overridden when a new server starts up.
2 – Enable continuous logging where the log file is updated with every new line of text. The log file will be deleted and overridden when a new server starts up.
3 – Enable continous logging where the log file is updated with ever new line of text. The log file will be appended to and logging will continute to the same log file when a new server starts up.
|
q2proded поступает иначе (и что это за триггер logfile_flush, который по умолчанию "0" и переменная "logfile_prefix" - у меня этот самый префикс к logfile_name не добавляется)? ибо, например, запускаю я его с "+set logfile 2" а по факту ведёт он себя как "+set logfile 2+buffer", т. е. пишет сначала в буфер, а не сразу в файл и не затирает предыдущий лог.
короче, хочу чтобы 1) писал без буфера прямиком в файл 2) дописывал 3) была ротация логов (п.3 - шутка, ибо кому нужно будет, тот перенаправит лог q2proded syslogd'у)
чего нужно сделать?
Последний раз редактировалось: Amok[MEn] (Пт Окт 15, 2010 6:33 pm), всего редактировалось 3 раз(а) |
|
Вернуться к началу |
|
|
Amok[MEn] lpw
Зарегистрирован: 14.08.2009 Сообщения: 62
|
Добавлено: Пт Окт 15, 2010 5:41 pm Заголовок сообщения: |
|
|
[SkulleR] писал(а): |
Запускать надо как-то так:
Код: |
su -c /home/amok/quake2/myq2pro - amok
|
|
Как показала серия экспериментов и Гугл, запускать нужно вот так:
Код: |
echo "user_password_here" | sudo -H -u amok -S -- /home/amok/quake2/myq2pro
|
Причём именно sudo, а не su. |
|
Вернуться к началу |
|
|
Amok[MEn] lpw
Зарегистрирован: 14.08.2009 Сообщения: 62
|
Добавлено: Пт Окт 15, 2010 5:45 pm Заголовок сообщения: |
|
|
LitRium писал(а): |
сделай скрипт |
А ни кто до меня не озадачивался написанием грамотно оформленного скрипта для папочки /etc/init.d? Ну чтоб как у людей - старт, стоп, рестарт. А то я пока не умею )
P. S. Естественно, без всякого screen'а, тут он не нужен. |
|
Вернуться к началу |
|
|
Amok[MEn] lpw
Зарегистрирован: 14.08.2009 Сообщения: 62
|
Добавлено: Пт Окт 15, 2010 7:29 pm Заголовок сообщения: |
|
|
Ну и до кучи, спрошу здесь же (а при желании и ценности информации, модераторы всегда смогут позже выделить в отдельную тему):
quake2 в режиме dedicated и q2proded - это что? Движки? Т. е. они что делают - обсчитывают физику, отвечают за сетевой протокол, пишут логи и пр.? а что, например, делает тогда библиотека (библиотека, правильно называю?) gamei386.so лежащая в папке openffa?
эти вопросы предваряют, собственно, главный вопрос сообщения, практический - у "движка" и у "библиотеки" могут быть свои наборы команд и переменных? если да, то как мне, например, чётко найти и создать список отдельно команд и переменных q2proded и отдельно - openffa? Ибо, если я прав и наборы разные, то тогда вывод команды cvarlist перечисляет все переменные в одну кучу. А как получить список команд, кроме как из документации разработчика, я вообще не знаю ) А в документации, бывает, информация устаревает ) Либо вообще кончается документация (как в случае с оригнальным quake2).
P. S. Да, я не люблю когда в голове сумбур, люблю когда всё по полочкам ) |
|
Вернуться к началу |
|
|
LitRium СЕРЫЙ КАРДИНАЛ (ГОПНИК)
Зарегистрирован: 18.03.2008 Сообщения: 1005 Откуда: Western Siberia
|
Добавлено: Пт Окт 15, 2010 10:01 pm Заголовок сообщения: |
|
|
насколько я помню еще с осп, cvarlist не показывал ключей мода (библиотеки), в разных модах ессно разные команды. Правда, лучше дождаться умного скуллера и получить профессиональный доклад : ).
q2proded это сам сервер, а в чем отличие от quake2 в режиме dedicated мне самому интересно. |
|
Вернуться к началу |
|
|
Amok[MEn] lpw
Зарегистрирован: 14.08.2009 Сообщения: 62
|
Добавлено: Пт Окт 15, 2010 11:10 pm Заголовок сообщения: |
|
|
LitRium писал(а): |
q2proded это сам сервер, а в чем отличие от quake2 в режиме dedicated мне самому интересно. |
Нет, я там привёл их обоих не для сравнения между собой, отличия понятны и расписаны на странице автора, а как пример обоих-двух в качестве "движков". |
|
Вернуться к началу |
|
|
[SkulleR] papa
Зарегистрирован: 21.11.2003 Сообщения: 467
|
Добавлено: Пт Окт 15, 2010 11:34 pm Заголовок сообщения: |
|
|
Цитата: |
q2proded поступает иначе (и что это за триггер logfile_flush, который по умолчанию "0" и переменная "logfile_prefix" - у меня этот самый префикс к logfile_name не добавляется)? ибо, например, запускаю я его с "+set logfile 2" а по факту ведёт он себя как "+set logfile 2+buffer", т. е. пишет сначала в буфер, а не сразу в файл и не затирает предыдущий лог. |
Сейчас в q2pro сделано так:
logfile_flush 1 — отключает буферизацию
logfile_prefix — добавляется не к имени лога, а к началу каждой строки, записываемой в лог
logfile 2 — дописывает в лог, а не затирает
Цитата: |
короче, хочу чтобы [...] была ротация логов |
Процессу q2proded можно послать сигнал SIGHUP, что бы тот закрыл лог и открыл его снова. Для ротации текущего лога достаточно переименовать console.log и послать SIGHUP. Автоматически это умеет делать утилита logrotate.
Цитата: |
echo "user_password_here" | sudo -H -u amok -S -- /home/amok/quake2/myq2pro |
Зачем такие извращения? Обычный su из-под рута в убунте не работает что-ли?
Цитата: |
А ни кто до меня не озадачивался написанием грамотно оформленного скрипта для папочки /etc/init.d? |
Пока по всей видимости нет... В идеале при установке q2proded из deb-пакета нужно автоматически создавать нового пользователя с домашей директорией где-нибудь в /var/lib, устанавливать init-скрипт и конфиги. Т.е. работы по дебианизации еще много :)
Цитата: |
quake2 в режиме dedicated и q2proded - это что? Движки? Т. е. они что делают - обсчитывают физику, отвечают за сетевой протокол, пишут логи и пр.? а что, например, делает тогда библиотека (библиотека, правильно называю?) gamei386.so лежащая в папке openffa |
Насчет движков все так. Библиотека «game*.so» — это более высокоуровневый код мода, ответственный за логику игрового процесса.
Цитата: |
у "движка" и у "библиотеки" могут быть свои наборы команд и переменных? |
Набор переменных у движка и библиотеки общий, набор команд — разный. Да, cvarlist выводит все переменные в одну кучу. Понять, что переменная имеет отношение к моду можно по ее названию — обычно такие переменные начинаются с префикса «g_*», но это не всегда так и зависит от личных предпочтений автора конкретного мода. По историческим причинам некоторые переменные могут не иметь префикса.
Цитата: |
А как получить список команд, кроме как из документации разработчика, я вообще не знаю |
Есть команда «cmdlist», аналогичная «cvarlist», которая выводит спискок команд движка. Стандартного способа просмотреть список команд мода, которые вызываются командой «sv <команда>», нет. |
|
Вернуться к началу |
|
|
Amok[MEn] lpw
Зарегистрирован: 14.08.2009 Сообщения: 62
|
Добавлено: Сб Окт 16, 2010 12:02 am Заголовок сообщения: |
|
|
Огромное спасибо за развёрнутый и полный ответ! Буду осознавать и изучать.
[SkulleR] писал(а): |
Зачем такие извращения? Обычный su из-под рута в убунте не работает что-ли?
Стандартного способа просмотреть список команд мода, которые вызываются командой «sv <команда>», нет.
Набор переменных у движка и библиотеки общий
|
su требует пароль, причём пароль переданный для него через stdin не авторитет (в отличие от sudo) ) Есть там какие-то махинации по записи учёток в спецобученном файле, чтобы su не просил пароля, мне лень было заморачиваться - искать и пробовать. sudo работает, и ладно. Также, говорят, можно настроить sudoers, чтоб sudo пароль не спрашивала, но пока это не принципиально.
А в сырцах это можно посмотреть? Где?
Дык, а как же отделить мух от котлет. Ну то есть вот дали мне абстрактный движок (с исходниками) и абстрактный мод (с исходниками) - как точно определить все используемые движком и модом переменные? Тоже где-то в сырцах искать? |
|
Вернуться к началу |
|
|
[SkulleR] papa
Зарегистрирован: 21.11.2003 Сообщения: 467
|
Добавлено: Сб Окт 16, 2010 12:56 am Заголовок сообщения: |
|
|
Цитата: |
А в сырцах это можно посмотреть? Где? |
g_svcmds.c
Цитата: |
как точно определить все используемые движком и модом переменные? |
Можно например выполнить «cvarlist» сначала сразу после запуска «голого» сервера, затем после запуска карты (момента загрузки мода) и сравнить результат. Но таким образом не будут учтены общие переменные сервера и мода (например «maxclients»). Точнее будет только чтением исходников или правкой кода сервера, что бы он все используемые модом переменные помечал определенным флагом, и затем распечатывать этот флаг в «cvarlist». |
|
Вернуться к началу |
|
|
LitRium СЕРЫЙ КАРДИНАЛ (ГОПНИК)
Зарегистрирован: 18.03.2008 Сообщения: 1005 Откуда: Western Siberia
|
Добавлено: Пн Окт 18, 2010 8:11 am Заголовок сообщения: |
|
|
зря я сюда зашел |
|
Вернуться к началу |
|
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
Заблокировано регистраций / сообщений: 16510 / 0
|