nebula-plugins / gradle-ospackage-plugin

Gradle plugin for constructing linux packages, specifically RPM and DEBs.
Apache License 2.0
371 stars 126 forks source link

spring boot and daemon plugin on systemd #404

Open fer-marino opened 3 years ago

fer-marino commented 3 years ago

hallo, I'm not sure if this is possible, but I would like to package a spring boot 2 application as a daemon and I don't really know how to do it. I've noticed that the daemon plugin as a template for initd, but modern linux systems has systemd. I couldn't find a template for that.

If there is no easy way I would like to contribute :)

cheers, Fernando

DanielThomas commented 3 years ago

Internally we're currently just running daemontools under systemd:

[Unit]
Description=Daemontools service supervision

[Service]
ExecStart=/usr/bin/svscanboot /service/
Restart=always
TasksMax=infinity

We'd certainly be open to an ospackage-daemon-systemd/ospackage-application-systemd variant - we've certainly discussed it internally but we abstract away service start for our Spring Boot services so it hasn't been a priority.

fer-marino commented 3 years ago

Hi, we currently deploy spring boot apps on systemd without daemon tools as described here: https://docs.spring.io/spring-boot/docs/current/reference/html/deployment.html#deployment.installing.nix-services.system-d

So in my opinion what is needed is just some code that handle the systemd definition. Systemd is much more advanced than initv, and perform most of the tasks that daemontools does.