Запуск множества серверов от одного юзера по разным портам, + разброс по разным ядрам |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
Запуск множества серверов от одного юзера по разным портам, + разброс по разным ядрам |
Sobig |
4.6.2008, 11:57
Сообщение
|
|
Итак, вижу, наболело...
Использование screen Вот простой скрипт запуска сервера под screen с комментариями. Код #!/bin/sh # ALIASES # Alias for game root path GAME_PATH="/home/sobig/Server/Counter-Strike-16-Match" # Alias for echo of server's name SERVER_NAME="Counter-Strike 1.6 Match-1" # Alias for server address SERVER_ADDRESS="localhost" # Alias for server port SERVER_PORT="27015" # Alias for screen name of server process SCREEN_NAME="Counter-Strike-16-Match-1" # Starting Counter-Strike-16-Public echo "$SERVER_NAME @ $SERVER_ADDRESS:$SERVER_PORT starting in screen mode @ $SCREEN_NAME" # Entering Counter-Strike 1.6 root folder cd $GAME_PATH # Starting server in screen mode screen -A -h 1500 -m -d -S $SCREEN_NAME ./hlds_run -insecure -game cstrike -port $SERVER_PORT -nomaster +maxplayers 24 +exec server.cfg +map de_dust2 -pingbooster 1 Пояснения на русском: Код #!/bin/sh Шелл скрипт. Код # Alias for game root path GAME_PATH="/home/sobig/Server/Counter-Strike-16-Match" Переменная пути до корневой директории сервера. Код # Alias for echo of server's name SERVER_NAME="Counter-Strike 1.6 Match-1" Переменная с именем сервера для вывода в шелле. Код # Alias for server address SERVER_ADDRESS="localhost" Переменная с IP адресом сервера, используемым при запуске сервера. Код # Alias for server port SERVER_PORT="27015" Переменная с портом сервера, используемым при запуске сервера. Код # Alias for screen name of server process SCREEN_NAME="Counter-Strike-16-Match-1" Переменная с именем screen процесса. Тем проще икороче, тем удобнее, но я люблю красоту и порядок. Код # Starting Counter-Strike-16-Public echo "$SERVER_NAME @ $SERVER_ADDRESS:$SERVER_PORT starting in screen mode @ $SCREEN_NAME" Эта строка запускает вывод текста с информацией о сервере при запуске в шелле. Код # Entering Counter-Strike 1.6 root folder cd $GAME_PATH Входим в папку с сервером. Код # Starting server in screen mode screen -A -h 1500 -m -d -S $SCREEN_NAME ./hlds_run -insecure -game cstrike -port $SERVER_PORT -nomaster +maxplayers 24 +exec server.cfg +map de_dust2 -pingboost 1 screen - программа, создающая виртуальную консоль с определенным именем и работая в фоновом режиме! Запускаем сервер в screen режиме с именем, указанным в переменной $SCREEN_NAME. FAQ по параметрам: -A - адаптирует окно шелла (если запуск в окне) к нужным размерам по высоте и ширите. -h - задает буфер возможности скролла в строках. 1500 - означает 1500 строк на виду, остальные перезаписываются. -m - создает новую сессию. -d - делает детач (выход) из сессии или снова аттачит текущую. -S - имя сессии. Далее, для перехода по окнам юзаем screen -r. -r выводит список доступных окон. Потом выбераем нужное (пример: screen -r hlds-1) и попадаем в консоль сервера HLDS. Вводим что-нибудь для теста. Для выхода ждем CTRL+A, потом D. CTRL+A означает действие с окном. Кнопка D - detach, выход из окна, но не завершение. Завершать screen можно CTRL+C. Также можно сразу юзать screen -r -d, с детачем других окон. Привязка процесса к определенному CPU в SMP системе под Linux Пример использования жесткой привязки процесса к определенному процессору (CPU affinity). Устанавливаем пакет schedutils (Debian: apt-get install schedutils, Red Hat: up2date schedutils или rpm -ivh schedutils*) Привязка процесса с pid 13545 к первому CPU (#0): taskset -c 1 -p 13545 к 3 и 4 CPU (#2 и #3): taskset -c 3,4 -p 13545
Отредактировал: Sobig, - 4.7.2009, 8:00
|
Поблагодарили 10 раз
|
|
bravo |
7.6.2008, 16:08
Сообщение
|
|
что лучше - сделать сервисы, как тут где то рядом написано, или скрины юзать? или это как бы одно другое дополняет? )
|
|
|
Sobig |
8.6.2008, 15:56
Сообщение
|
|
|
Поблагодарили 1 раз
|
|
bravo |
8.6.2008, 19:35
Сообщение
|
|
а сервис автоматически поднимает сервак. думаю решением будет поднимать сервак как сервис через скрин =) и шел есть и надежнее...
правильно? |
|
|
dcsk |
8.6.2008, 23:52
Сообщение
|
Sobig, ты мне что-то провокационное писал в ЛС, а сабжа всё нет и нет. :)
bravo, hlds_run - это и есть скрипт автоподнималки bash`евый если внимательно посмотриш. Вообще это дело каждого - имхо удобнее сервис, ибо в скрин я все равно не полезу, когда есть rcon. Вдогонку - а если поставить sticky bit и сделать chown бинарника на юзера под которым фактически будет запускатся ЦС? ;) |
|
|
|
bravo |
9.6.2008, 0:45
Сообщение
|
|
dcsk ну в принципе да, чё туда лезть, когда есть ркон... ну а если у меня не только кс на сервере? гтп, тф2, вот ещё думаю рагнарог поставить... (вов на другой "машине")
|
|
|
Sobig |
9.6.2008, 8:03
Сообщение
|
|
Sobig, ты мне что-то провокационное писал в ЛС, а сабжа всё нет и нет. :) bravo, hlds_run - это и есть скрипт автоподнималки bash`евый если внимательно посмотриш. Вообще это дело каждого - имхо удобнее сервис, ибо в скрин я все равно не полезу, когда есть rcon. Вдогонку - а если поставить sticky bit и сделать chown бинарника на юзера под которым фактически будет запускатся ЦС? ;) Скрипт запуска процесса от рута, но под другим юзером уже есть, сейчас разгребаю с автозапуском. :-) |
|
|
bravo |
24.6.2008, 22:37
Сообщение
|
|
Sobig Так всё же, как сделать, что бы он и поднимался автоматически и консоль была свободной? =\
хотя вообщем то можно сделать и сервисы. ведь сервер можно запускать под одним пользователем, а юзать консоль другим, с другой сессией тог же putty, например. |
|
|
Sobig |
25.6.2008, 15:05
Сообщение
|
|
Sobig Так всё же, как сделать, что бы он и поднимался автоматически и консоль была свободной? =\ хотя вообщем то можно сделать и сервисы. ведь сервер можно запускать под одним пользователем, а юзать консоль другим, с другой сессией тог же putty, например. Ты не увидишь процесс под другим юзером. А поднимается сервер сам, так как в hlds_run есть автоподнималка. PS: А screen бывает занятым? O_O |
|
|
Xp0Huk |
12.8.2008, 15:35
Сообщение
|
|
помагите установить screen
|
|
|
bravo |
14.8.2008, 8:42
Сообщение
|
|
Xp0Huk какой у тебя дистрибутив?
|
|
|
Xp0Huk |
14.8.2008, 11:15
Сообщение
|
|
ubuntu-8.04-desktop-i386
Отредактировал: Xp0Huk, - 15.8.2008, 13:09
|
|
|
Redacid |
14.8.2008, 22:09
Сообщение
|
|
|
|
|
Xp0Huk |
15.8.2008, 20:01
Сообщение
|
|
screen установлен что дальше делать
|
|
|
bravo |
16.8.2008, 8:03
Сообщение
|
|
Xp0Huk чё дальше делать написано в первом постел... там даны пимеры как запускать программы с использованием скринов
|
|
|
Crazy* |
17.12.2008, 1:41
Сообщение
|
|
bash: ./runcs_noroot: /bin/sh^M: bad interpreter: No such file or directory
в чем может быть проблема?
Отредактировал: Crazy*, - 17.12.2008, 1:41
|
|
|
bravo |
17.12.2008, 1:57
Сообщение
|
|
Crazy*, а ты сам понимаешь что пишешь? если да, то попробуй пояснить, а то мож я один думаю что это какая то ерунда
|
|
|
Crazy* |
17.12.2008, 18:49
Сообщение
|
|
|
|
|
bravo |
17.12.2008, 22:05
Сообщение
|
|
Crazy*, ну значит ты ошибся. дай сюда строчку, которую ты пишешь для запуска скрина и сервера
|
|
|
Crazy* |
17.12.2008, 23:38
Сообщение
|
|
|
|
|