Первоочередные требования Вам нужен сервер Linux с доступом к shell'у, доступ по ftp, libstdc++5 или libstdc++6, и SSH-клиент для соединения с сервером.
Поднятие сервера
Загрузка файлов
Первым делом зайдите на 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 и укажите, если вы хотите запустить интернет-сервер! Если вы не сделаете этого, то получите ошибку запрета разрешений.
Способ первый
В первом способе используется команда 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:
Code
#!/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-скриптов
Скрипт номер 1 startgtaserver.sh:
Code
#!/bin/bash
export GTA_PATH=/home/sampsvr
cd $GTA_PATH
while [ true ]; do
cat {$GTA_PATH}/server_log.txt >> {$GTA_PATH}/full_server_log.txt
rm {$GTA_PATH}/server_log.txt
touch {$GTA_PATH}/server_log.txt
./samp022svr
done
Он работает непосредственно с исполняемым кодом сервера Второй скрипт, названный gtaserver.sh:
Code
#!/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
Толкьо измените пути в обоих скриптах на ваши, и после этого Вы можете запустить Ваш свервер, введя
остановить сервер, введя
и, наконец, перезапустить его, введя