How to run Java Spring Boot based web application in Linux? You may just run in terminal:
java -jar /home/user/your_project_name/your_project_name.jar
Note: in this case you can't escape from terminal.
Second way - using nohup:
nohup java -jar /home/user/your_project_name/your_project_name.jar &
Ok, it works, but better way for run your application, especially at production server - create systemd service for fully control them (start, stop, see status, etc...).
We need to install Java Development Kit (JDK). Install opensource version on Debian-based systems:
sudo apt install openjdk-17-jdk -y
Oracle Java official installers here.
Now find JAVA binary file's full path:
which java
You must see output like this:
/usr/bin/java
We use this path when configure systemd file.
Create service file for your project:
sudo nano /etc/systemd/system/your_project_name.service
Insert below configuration:
[Unit]
Description=Webserver daemon
[Service]
ExecStart=/usr/bin/java -jar /home/user/your_project_name/your_project_name.jar --spring.profiles.active=production --spring.config.location=/home/user/your_project_name/application.properties
User=user
[Install]
WantedBy=multi-user.target
After you save daemon file, reload systemd manager configuration:
sudo systemctl daemon-reload
Reload the systemd manager configuration. This will rerun all generators (see systemd.generator(7)), reload all unit files, and recreate the entire dependency tree. While the daemon is being reloaded, all sockets systemd listens on behalf of user configuration will stay accessible.
This command should not be confused with the reload command. See documentation for more details.
Next step - start your service:
sudo systemctl start your_project_name.service
Project run as service, but it can't start after system reboot. Here need enable autorun:
sudo systemctl enable your_project_name.service
Top comments (0)