Linux Server RU

From SA-MP

Jump to: navigation, search

Contents

Первоочередные требования

Вам нужен сервер Linux с доступом к shell'у, доступ по ftp, libstdc++5 или libstdc++6, и SSH-клиент, такой как Putty для соединения с сервером.

Поднятие сервера

Загрузка файлов

Первым делом зайдите на http:/sa-mp.com/download.php и скачайте сервер Linux, libstdc++5 или libstdc++6, в зависимости от того, чт озапущено на вашем сервере. Я рекомендую скачать libstdc++6 чтобы проверить для начала, работает ли. Затем поместите через FTP файлы на ваш сервер, используя любимый FTP-клиент.

Настройка вашего сервера

После того, как вы скачали файлы, откройте их вашим любимым SSH-клиентом и залогиньтесь. Переместитесь в папку, куда вы установили сервер (например, я использую /home/daniel/sampsvr - ваша папка может быть другой), введя cd /your/directoy/sampsvr. Используя ваш любимый текстовый редактор, например, Pico или Nano, отредактируйте server.cfg и измените hostname (имя сервера), RCON password (пароль на RCON) и др., более подробную информацию вы можете найти в справке по server.cfg и на странице Продвинутое управление сервером. Если вы отредактировали ваш линуксовский конфигурационный файл в Windows, то прежде чем запустить сервер, введите "dos2unix server.cfg", иначе у вас будут проблемы с rcon.

Запуск сервера

После того, как вы сконфигурировали server.cfg должным образом, просто запустите севрер одним из следующих способов. Каждый способ имеет описание под картинкой. Я покажу три наиболее популярных способа запуска сервера. Небольшой SSH-скрипт для поддержания работоспособности вашего сервера может быть найден внизу этой страницы.

ПРИМЕЧАНИЕ: Убедитесь, что вы установили разрешения для samp022svr и укажите, если вы хотите запустить интернет-сервер! Если вы не сделаете этого, то получите ошибку запрета разрешений.

Image:Samp_ssh.jpg

Способ первый

В первом способе используется команда nohup command для поддержания работоспособности сервера. nohup - это команда Linux, запускающая программу, которая будет игнорировать сигналы SIGHUP - сигналы отключения. Это означает, что сервер будет продолжать работать после того, как вы закроете ранеее открытое окно SSH. Амперсанд & в конце комманды означает, что сервер должен работать в фоновом режиме, таким образом вы можете продолжать выполнение комманд даже после запуска сервера SA-MP.

nohup ./samp022svr &

Подробный лог может быть найден в файле nohup.out, который будет создан в папке, где вы выполнили команду (в данном случае "/home/gta"). Nohup устанвлен на большинстве Linux-серверов.


Способ второй

Втрой метод позволяет процессу сервера SA-MP идти в фоновом режиме. Преимущество состоит в том, что вы можете продолжать работу в shell-среде, таким образом вам не нужно открывать другое окно. На некоторых Linux-серверах процесс будет выполняться до тех пор, пока окно SSH не закроется, но не во всех случаях.

./samp022svr &

Здесь нет лог-файлов и прочих других. Shell вернет PID стартовавшего процесса, 9251 на примере выше. Этот метод поддерживается всеми Linux-серверами.


Способ третий

Этот метод самый оригинальный и наиболее легкий для понимания. Сервер будет рабоать на виду, и все ошибки будут выводится прямо на экран (например, segmentation faults). Но имейте в виду, что нормальный вывод, которй есть в Windows-сервере, не будет виден на Linux-сервере.

./samp022svr

Сервер выключится после при закрытии окна. Этот метод лучше всего подходит для написания скриптов и/или в целях отладки, т.к. он вполне ясный.


ПРИМЕЧАНИЕ: Если вы скачали версию libstdc++6 с сайта SA:MP и получили ошибку о том, что libstdc++6 не может быть найден, просто скачайте версию libstdc++5 с вебсайта SA:MP и используйте ее. Описанный выше сервер выдает "libstdc++6 cannot be found", и на скриншоте он запущен с использованием libstdc++5.

Поддержка работоспособности сервера

С небольшим количеством опций против выхода сервера из строя (anti-crash options) есть большая вероятность получения ошибок "Segmentation Fault" и любых других ошибок, сгенерированных вашим режимом игры. Это приведет к завершению работы сервера и Вам придется самим его снова запустить. Все, что вам нужно для использования ниже описанной программы, это среда Linux и возможность использования cron'a. Эта программа проверит, запущен ли процесс samp01b, и если это не так, запустит его вновь. Вам нужно уставовить следующий crontab:

*/5 * * * * /путь/к/samp/checksamp.sh


checksamp.sh:

#!/bin/sh

PROCESS_COUNT=$(ps -fu root | grep samp01b | grep -v grep | wc -l)
case $PROCESS_COUNT in
0) /путь/к/samp01b &
;;
1) #OK, программа уже выполняется
;;
*) #OK, запущено несколько экземпляров программы
;;
esac

Убедитесь, что у вас правльно выставлены все пути, иначе скрипт не будет работать. На данный момент скрипт не может обрабатывать несколько серверов SA-MP на одной машине, зато превосходно работает, когда толкьо один запущен. Требуется с помощью chmod устанвить права/разрешения на файл checksamp.sh в 0755 (+x)!

Вы также можете перезапустить сервер при помощи этой пары shell-скриптов (спасибо Noosferatu (пост по теме))

Скрипт номер 1 startgtaserver.sh:

#!/bin/bash
cd /home/sampsvr
while [ true ]
do
cat /home/sampsvr/server_log.txt >> /home/sampsvr/gamelog.txt
./samp01b
done

Он работает непосредственно с исполняемым кодом сервера

Второй скрипт, названный gtaserver.sh:

#!/bin/bash

server_start() {
/home/sampsvr/startgtaserver.sh & # замените полным путем и именем запускаемого скрипта
} 

server_stop() {
killall startgtaserver.sh # имя вашего запускаемого скрипта
killall samp01b # нужно добавить путь к killall, если он не прописан в $PATH
} 

server_restart() {
server_stop
sleep 1
server_start
}
case "$1" in
'start')
server_start
;;
'stop')
server_stop
;;
'restart')
server_restart
;;
*)
echo "usage $0 start|stop|restart"
esac

этот запускается из /usr/local/bin

Толкьо измените пути в обоих скриптах на ваши, и после этого Вы можете запустить Ваш свервер, введя

gtaserver start

остановить сервер, введя

gtaserver stop

и, наконец, перезапустить его, введя

gtaserver restart
Personal tools
In other languages