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>