Today most of the people prefer to deploy the standalone application and easy to manageable instead of doing too much overhead or get expert advice on it to manage a specific web server for rest application.
dilemma: When we have a standalone jar there are few minor hacks we have to do this with it. like, configure log path, start with a specific promised user. run it with standalone process instead of inline execution.
A fully executable jar can be executed like any other executable binary or it can be registered with ‘systemd‘. This makes it very easy to install and manage spring boot applications in common production environments.
#systemd: systemd is system and service manager for linux operating system. When run as the first process on boot (as PID 1), it acts as init system that brings up and maintains userspace services. it is a replacement of ‘Unix system v’ and BSD (Berkeley Software Distribution) init system. for more detail #man systemd
Assume that you have a linux server that has Java installed, now place your executable spring boot jar file in a /opt/apps/
directory
Now create a app.service file in a /etc/systemd/system
directory and execute below command also make sure your permission before creating a file at a particular location
#vi /etc/systemd/system/app.service
and paste script
[Unit] Description=sample application After=syslog.target [Service] User=appUser ExecStart=/opt/apps/app.jar SuccessExitStatus=143 [Install] WantedBy=multi-user.target
now save above script using “:wq” for more detail check vi editor helps(#man vi)
let’s enable service
#systemctl enable app.service
(check #man systemctl for more detail.)
once service enables now you can start, stop and check status of your service.
#systemctl start app.service
#systemctl stop app.service
Hope you like this. Thanks for reading 🙂
Follow @nikeshpathak