Для більш стабільної роботи web-застосунки краще запускати на сервері як системні сервіси. Для цього спершу потрібно створити власний системний сервіс:
sudo nano /etc/systemd/system/myapp.service
У цей файл потрібно додати код:
[Unit]
Description=Spring Boot Application
After=network.target
[Service]
Type=simple
User=ubuntu
Group=ubuntu
WorkingDirectory=/opt/myapp
ExecStart=/usr/bin/mvn spring-boot:run -Dspring-boot.run.profiles=prod
Restart=on-failure
RestartSec=10
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
User та Group - це дані користувача, WorkingDirectory - шлях до застосунку, ExecStart - команда для запуску (в даному випадку запускається з сирцевого коду, але краще скомпілювати і запускати jar-файл).
Далі потрібно зберегти файл та виконати команду:
sudo systemctl daemon-reload
Перевірити статус сервісу:
sudo systemctl status myapp.service
Запустити сервіс:
sudo systemctl start myapp.service
Щоб сервіс запускався автоматично після перезавантаження Ubuntu, потрібно виконати команду:
sudo systemctl enable myapp.service
Зупинка:
sudo systemctl stop myapp.service
Перезапустити сервіс:
sudo systemctl restart myapp.service
Подивитися останні логи:
sudo journalctl -u myapp.service
Виводити логи в режимі реального часу (вихід - Ctrl+C):
sudo journalctl -u myapp.service -f
Також можна додати команду, щоб не потрібно було робити додаткові налаштування для запуску на портах менше 1024:
AmbientCapabilities=CAP_NET_BIND_SERVICE
Фінальний вигляд файлу:
[Unit]
Description=Spring Boot Application
After=network.target
[Service]
Type=simple
User=ubuntu
Group=ubuntu
AmbientCapabilities=CAP_NET_BIND_SERVICE
WorkingDirectory=/opt/myapp
ExecStart=/usr/bin/mvn spring-boot:run -Dspring-boot.run.profiles=prod
Restart=on-failure
RestartSec=10
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
Коментарі
Дописати коментар