Предварительно качаем и устанавливаем OpenJDK инструкций в инете уйма.
Качаем сам геосервер с оф сайта. Я создал пользователя geoserver и распаковал геосервер в домашний каталог.
В корне каталога геосервера есть файл start.ini где можно сконфигурировать сам геосервер, например я изменил номер порта
[CODE]jetty.port=60000[/CODE]Не забываем открыть порт в FirewallD.
Далее необходимо создать файл .profile в каталоге ~/ (домашнем), в этом файле должна быть ссылка на расположение геосервера
[CODE]export GEOSERVER_HOME=/home/geoserver/geoserver-2.14.1[/CODE]
Далее нам надо создать файлы:- /etc/sysconfig/geoserver - файл с переменными окружения, нужными для запуска java приложения- /etc/systemd/system/geoserver.service - systemd unit для запуска сервера, там же описан пользователь из под которого запускается сервис, ограничение на использование оперативной памяти, этап запуска и прочая информация
- Ручной запуск systemctl start geoserver
- Ручной останов systemctl stop geoserver
- Вкл/Выкл запуска при старте системы systemctl disable geoserver
Более подробная информация по использованию менеджера инициализации в справке по systemd, перепечатывать ее тут смысла особого нет.
Содержание /etc/sysconfig/geoserver
[CODE]USER=geoserver
JAVA_HOME=/usr
JAVA_OPTS="-Xms128m -Xmx512m"
GEOSERVER_HOME="/home/${USER}/geoserver-2.14.1/"
GEOSERVER_DATA_DIR="$GEOSERVER_HOME/data_dir"[/CODE]Содержание /etc/systemd/system/geoserver.service
[CODE][Unit]
Description=The GeoServer
ServiceAfter=network.target remote-fs.target nss-lookup.target
[Service]
EnvironmentFile=/etc/sysconfig/geoserver
User=geoserver
ExecStart=/usr/bin/geosrv -a -c "source /etc/sysconfig/geoserver && exec ${GEOSERVER_HOME}/bin/startup.sh"
ExecStop=/usr/bin/geosrv -a -c "source /etc/sysconfig/geoserver && exec ${GEOSERVER_HOME}/bin/shutdown.sh"
MemoryLimit=14G
MemoryMax=14G
MemoryAccounting=yes
#Restart=on-failure
#RestartSec=5
[Install]
WantedBy=multi-user.target[/CODE]
Еще один нюанс, совсем забыл нужно создать символическую ссылку на bash в /usr/bin/geosrv ( ln -s $(which bash) /usr/bin/geosrv ) - это нужно для того, что бы выхлоп с java приложения в syslog'е/journalctl'е высвечивался под unit'ом geosrv, а не от bash, для удобства поиска и структурирования ошибок в логе. Создаем символическую ссылку на bash - [CODE]ln -s $(which bash) /usr/bin/geosrv[/CODE]Теперь обновляем конфигурацию
[CODE]systemctl daemon-reload[/CODE]Запускаем геосервер
[CODE]systemctl start geoserver[/CODE]Проверяем статус
[CODE]systemctl status geoserver.service[/CODE]Если все ок, заходим и любуемся через браузер.
Изменено: Алексей Рябов - 1 окт 2020 00:43:50
(исправил съехавшие строки юнита)