原文链接:https://ywnz.com/linuxjc/4106.html
本文介绍使用Systemd服务轻松管理Java jar应用程序,Systemd是Linux的系统和服务管理器,它现在是许多发行版的默认初始化系统,包括Ubuntu 16.04/18.04、Debian 8/9、CentOS 7、Arch Linux操作系统。在本部署中,我有一个位于/opt/prod/目录下的Jar文件,根据经验,需要添加一个系统用户,该用户将使用systemd运行应用程序。可以先阅读Systemd入门教程。
一、创建应用程序用户和组
首先为用户创建一个系统组:
groupadd -r javagroup
接下来,我们使用默认组创建系统用户java-app:
useradd -r -s /bin/false -g javagroup java-app
确认用户已创建以及是否使用正确的组:
# id java-app
uid=996(java-app) gid=993(javagroup) groups=993(javagroup)
为项目目录建立用户(java-app)管理权限:
chown -R java-app:javagroup /data/java
二、创建Systemd Service
我们现在可以创建一个systemd服务文件来管理我们的应用程序,需要以root用户身份创建此文件:
sudo vim /etc/systemd/system/myapp.service
它具有如下内容:
[Unit]
Description=Manage Java service
[Service]
WorkingDirectory=/opt/prod
ExecStart=/bin/java -Xms128m -Xmx256m -jar myapp.jar
User=jvmapps
Type=simple
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
将User设置为先前创建的,将WorkingDirectory设置为带有jar文件的目录。
-Xms128m和-Xmx256m用于设置应用程序可以使用的最小和最大内存。
三、使用systemd启动Java Application服务
接下来要做的是启动应用程序服务,但首先,重新加载systemd,以便它知道添加的新应用程序:
sudo systemctl daemon-reload
重新加载后,启动该服务:
sudo systemctl start myapp.service
要检查状态,请使用:
sudo systemctl status myapp
你还可以启用服务以在服务器启动时启动:
$ sudo systemctl enable myapp
Created symlink from /etc/systemd/system/multi-user.target.wants/myapp.service to /etc/systemd/system/myapp.service.
要重新启动应用程序,请使用:
sudo systemctl restart myapp
结语
经过以上操作,已经有一个由Systemd管理的Java应用程序了。
https://www.cnblogs.com/lovesKey/p/11002042.html