1) Объявляем наш jar исполняемым:
maven:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
gradle:
jar { manifest { attributes 'Main-Class': 'com.foo.bar.MainClass' } }
2) Создаем файл конфигурации (меняем выделенные строки на свои):
sudo nano /etc/systemd/system/app_name_service.service
с содержимым:
[Unit]
Description=App Description
After=network.target
[Service]
Type=simple
SyslogIdentifier=appdescription
WorkingDirectory=/app_path
PIDFile=/app_path/app_name.pid
ExecStart=/bin/sh -c "exec /usr/bin/java -jar app_name.jar & echo $! > /app_path/app_name.pid"
ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID
[Service]
Type=forking
PIDFile=/app_path/app_name.pid
[Install]
WantedBy=default.target
3) Для автоматического запуска при загрузке:
systemctl enable app_service