云网牛站
所在位置:首页 > Linux教程 > 在Linux系统中使用Systemd运行Java Jar应用程序

在Linux系统中使用Systemd运行Java Jar应用程序

2019-01-23 08:58:39作者:陈铜稿源:云网牛站

本文介绍使用Systemd服务轻松管理Java jar应用程序,Systemd是Linux的系统和服务管理器,它现在是许多发行版的默认初始化系统,包括Ubuntu 16.04/18.04、Debian 8/9、CentOS 7、Arch Linux操作系统。在本部署中,我有一个位于/opt/prod/目录下的Jar文件,根据经验,需要添加一个系统用户,该用户将使用systemd运行应用程序。可以先阅读Systemd入门教程

 

一、创建应用程序用户和组

首先为用户创建一个系统组:

sudo groupadd -r appmgr

接下来,我们使用默认组创建系统用户jvmapps:

sudo useradd -r -s /bin/false -g appmgr jvmapps

确认用户已创建以及是否使用正确的组:

# id jvmapps

uid=992(jvmapps) gid=986(appmgr) groups=986(appmgr)

 

二、创建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用于设置应用程序可以使用的最小和最大内存。

完成更改后,为项目目录授予用户和组所有权权限:

sudo chown -R jvmapps:appmgr /opt/prod

 

三、使用systemd启动Java Application服务

接下来要做的是启动应用程序服务,但首先,重新加载systemd,以便它知道添加的新应用程序:

sudo systemctl daemon-reload

重新加载后,启动该服务:

sudo systemctl start myapp.service

要检查状态,请使用:

sudo systemctl status myapp

输出信息如下:

在Linux系统中使用Systemd运行Java Jar应用程序

你还可以启用服务以在服务器启动时启动:

$ 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应用程序了。

 

相关主题

在Ubuntu 18.04系统上安装Java 11的方法

精选文章
热门文章