Linux Server RU
From SA-MP Wiki
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 и укажите, если вы хотите запустить интернет-сервер! Если вы не сделаете этого, то получите ошибку запрета разрешений.
Способ первый
В первом способе используется команда 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 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:
#!/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
Ошибка при запуске "No such file or directory"
Проблема возникает при запуске samp`а на платформе x64. Для того что бы запустить сервер необходимо установить в вашу систему нужные библиотеки.
Для Debian: "apt-get install ia32-libs" Для Ubuntu: "sudo apt-get install ia32-libs"

