7. Запуск модуля
Модуль можно запускать помощи Docker, как JAR-файл или с использованием systemd.
Для запуска модуля при помощи Docker введите команду:
docker start <название модуля>
Для запуска модуля из JAR-файла, введите команду:
java
--add-exports=java.base/sun.security.util=ALL-UNNAMED \
--add-exports=java.base/sun.security.x509=ALL-UNNAMED \
--add-exports=java.base/sun.security.pkcs=ALL-UNNAMED \
--add-exports=java.base/sun.security.provider=ALL-UNNAMED \
--add-exports=java.base/sun.security.tools.keytool=ALL-UNNAMED \
--add-exports=java.base/sun.net.ftp=ALL-UNNAMED \
--add-opens=java.xml/com.sun.org.apache.xerces.internal.dom=ALL-UNNAMED \
--add-opens=java.xml/org.w3c.dom=ALL-UNNAMED \
[-Dconfig.location=<путь до application.yml> ]
[-Dlogging.config=logback.xml]
-jar <путь jar>
Команды, заключенные в [], выполняются опционально.
Для запуска модуля при помощи systemd создайте unit-файл /etc/systemd/system/<название модуля>.service со следующим содержимым:
[Unit]
Description=<описание>
After=network.target
[Service]
Type=simple
User=<пользователь>
WorkingDirectory=<путь до каталога с jar и logback.xml>
Environment="JDK_JAVA_OPTIONS=\
--add-exports=java.base/sun.security.util=ALL-UNNAMED \
--add-exports=java.base/sun.security.x509=ALL-UNNAMED \
--add-exports=java.base/sun.security.pkcs=ALL-UNNAMED \
--add-exports=java.base/sun.security.provider=ALL-UNNAMED \
--add-exports=java.base/sun.security.tools.keytool=ALL-UNNAMED \
--add-exports=java.base/sun.net.ftp=ALL-UNNAMED \
--add-opens=java.xml/com.sun.org.apache.xerces.internal.dom=ALL-UNNAMED \
--add-opens=java.xml/org.w3c.dom=ALL-UNNAMED"
ExecStart=<путь до исполняемого файла java> -Dconfig.location=<путь до конфига> -Dlogging.config=logback.xml -jar <путь до jar>
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
Примените настройки и запустите сервис:
sudo systemctl daemon-reload
sudo systemctl enable --now <название модуля>.service
8. Остановка модуля
Остановка модуля выполняется при помощи Docker-команды:
docker stop <название модуля>
Для ручной остановки необходимо подключиться по SSH к серверу, найти нужный процесс и остановить его.
Пример:
ps aux | grep <название модуля>
kill <pid>