Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

3 страниц V   1 2 »

Запуск множества серверов от одного юзера по разным портам

, + разброс по разным ядрам
Статус пользователя Sobig
сообщение 4.6.2008, 11:57
Сообщение #1


Стаж: 16 лет

Сообщений: 334
Благодарностей: 88
Полезность: 228

Итак, вижу, наболело...

Использование 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
Сообщение #2


Стаж: 17 лет

Сообщений: 2650
Благодарностей: 865
Полезность: 879

Меценат Меценат

что лучше - сделать сервисы, как тут где то рядом написано, или скрины юзать? или это как бы одно другое дополняет? )
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Sobig
сообщение 8.6.2008, 15:56
Сообщение #3


Стаж: 16 лет

Сообщений: 334
Благодарностей: 88
Полезность: 228

Цитата(bravo @ 7.6.2008, 20:08) *
что лучше - сделать сервисы, как тут где то рядом написано, или скрины юзать? или это как бы одно другое дополняет? )

Сервисы не дают доступ к консоли, в отличии от скринов. Пора бы знать разницу или внимательнее читать.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя bravo
сообщение 8.6.2008, 19:35
Сообщение #4


Стаж: 17 лет

Сообщений: 2650
Благодарностей: 865
Полезность: 879

Меценат Меценат

а сервис автоматически поднимает сервак. думаю решением будет поднимать сервак как сервис через скрин =) и шел есть и надежнее...
правильно?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя dcsk
сообщение 8.6.2008, 23:52
Сообщение #5
Стаж: 17 лет

Сообщений: 54
Благодарностей: 39
Полезность: 524

Sobig, ты мне что-то провокационное писал в ЛС, а сабжа всё нет и нет. :)

bravo, hlds_run - это и есть скрипт автоподнималки bash`евый если внимательно посмотриш. Вообще это дело каждого - имхо удобнее сервис, ибо в скрин я все равно не полезу, когда есть rcon.

Вдогонку - а если поставить sticky bit и сделать chown бинарника на юзера под которым фактически будет запускатся ЦС? ;)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя bravo
сообщение 9.6.2008, 0:45
Сообщение #6


Стаж: 17 лет

Сообщений: 2650
Благодарностей: 865
Полезность: 879

Меценат Меценат

dcsk ну в принципе да, чё туда лезть, когда есть ркон... ну а если у меня не только кс на сервере? гтп, тф2, вот ещё думаю рагнарог поставить... (вов на другой "машине")
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Sobig
сообщение 9.6.2008, 8:03
Сообщение #7


Стаж: 16 лет

Сообщений: 334
Благодарностей: 88
Полезность: 228

Цитата(dcsk @ 9.6.2008, 3:52) *
Sobig, ты мне что-то провокационное писал в ЛС, а сабжа всё нет и нет. :)

bravo, hlds_run - это и есть скрипт автоподнималки bash`евый если внимательно посмотриш. Вообще это дело каждого - имхо удобнее сервис, ибо в скрин я все равно не полезу, когда есть rcon.

Вдогонку - а если поставить sticky bit и сделать chown бинарника на юзера под которым фактически будет запускатся ЦС? ;)

Скрипт запуска процесса от рута, но под другим юзером уже есть, сейчас разгребаю с автозапуском. :-)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя bravo
сообщение 24.6.2008, 22:37
Сообщение #8


Стаж: 17 лет

Сообщений: 2650
Благодарностей: 865
Полезность: 879

Меценат Меценат

Sobig Так всё же, как сделать, что бы он и поднимался автоматически и консоль была свободной? =\
хотя вообщем то можно сделать и сервисы. ведь сервер можно запускать под одним пользователем, а юзать консоль другим, с другой сессией тог же putty, например.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Sobig
сообщение 25.6.2008, 15:05
Сообщение #9


Стаж: 16 лет

Сообщений: 334
Благодарностей: 88
Полезность: 228

Цитата(bravo @ 25.6.2008, 2:37) *
Sobig Так всё же, как сделать, что бы он и поднимался автоматически и консоль была свободной? =\
хотя вообщем то можно сделать и сервисы. ведь сервер можно запускать под одним пользователем, а юзать консоль другим, с другой сессией тог же putty, например.

Ты не увидишь процесс под другим юзером. А поднимается сервер сам, так как в hlds_run есть автоподнималка.
PS: А screen бывает занятым? O_O
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Xp0Huk
сообщение 12.8.2008, 15:35
Сообщение #10


Стаж: 16 лет

Сообщений: 123
Благодарностей: 18
Полезность: 120

помагите установить screen
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя bravo
сообщение 14.8.2008, 8:42
Сообщение #11


Стаж: 17 лет

Сообщений: 2650
Благодарностей: 865
Полезность: 879

Меценат Меценат

Xp0Huk какой у тебя дистрибутив?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Xp0Huk
сообщение 14.8.2008, 11:15
Сообщение #12


Стаж: 16 лет

Сообщений: 123
Благодарностей: 18
Полезность: 120

ubuntu-8.04-desktop-i386

Отредактировал: Xp0Huk, - 15.8.2008, 13:09
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Redacid
сообщение 14.8.2008, 22:09
Сообщение #13


Стаж: 16 лет

Сообщений: 72
Благодарностей: 26
Полезность: 280

Цитата(Xp0Huk @ 14.8.2008, 12:15) *
ubuntu-8.04-desktop-amd64


Давно не пользовался дебианоподобными, но если ен изменяет память

apt-get --install screen
либо через пакетный менеджер synatpic
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Xp0Huk
сообщение 15.8.2008, 20:01
Сообщение #14


Стаж: 16 лет

Сообщений: 123
Благодарностей: 18
Полезность: 120

screen установлен что дальше делать
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя bravo
сообщение 16.8.2008, 8:03
Сообщение #15


Стаж: 17 лет

Сообщений: 2650
Благодарностей: 865
Полезность: 879

Меценат Меценат

Xp0Huk чё дальше делать написано в первом постел... там даны пимеры как запускать программы с использованием скринов
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Crazy*
сообщение 17.12.2008, 1:41
Сообщение #16


Стаж: 17 лет

Сообщений: 213
Благодарностей: 49
Полезность: 192

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
Сообщение #17


Стаж: 17 лет

Сообщений: 2650
Благодарностей: 865
Полезность: 879

Меценат Меценат

Crazy*, а ты сам понимаешь что пишешь? если да, то попробуй пояснить, а то мож я один думаю что это какая то ерунда
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Crazy*
сообщение 17.12.2008, 18:49
Сообщение #18


Стаж: 17 лет

Сообщений: 213
Благодарностей: 49
Полезность: 192

Цитата(bravo @ 17.12.2008, 1:57) *
Crazy*, а ты сам понимаешь что пишешь? если да, то попробуй пояснить, а то мож я один думаю что это какая то ерунда

ну я запустил скрин, и мне в консоле линукса написало
bash: ./runcs_noroot: /bin/sh^M: bad interpreter: No such file or directory
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя bravo
сообщение 17.12.2008, 22:05
Сообщение #19


Стаж: 17 лет

Сообщений: 2650
Благодарностей: 865
Полезность: 879

Меценат Меценат

Crazy*, ну значит ты ошибся. дай сюда строчку, которую ты пишешь для запуска скрина и сервера
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Crazy*
сообщение 17.12.2008, 23:38
Сообщение #20


Стаж: 17 лет

Сообщений: 213
Благодарностей: 49
Полезность: 192

Цитата(bravo @ 17.12.2008, 22:05) *
Crazy*, ну значит ты ошибся. дай сюда строчку, которую ты пишешь для запуска скрина и сервера

не понял не много, в каком плане строчку для запуска скрина, я через МС, ентером на него... blush2.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
3 страниц V   1 2 »
 
Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: