原文链接: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

centos7 systemd配置jar包自启动服务

 

二、创建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应用程序了。

 

linux中 systemd相关配置

https://www.cnblogs.com/lovesKey/p/11002042.html

 

 

 

 

 

 

相关文章: