centos7 systemd配置jar包自启动服务

    科技2022-07-11  121

    原文链接: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应用程序了。

     

    linux中 systemd相关配置:

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

     

     

     

     

     

     

    Processed: 0.011, SQL: 8