Найти в Дзене
Software development

Делаем из spring boot приложения linux-сервис

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
Оглавление

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