以前,打包java web项目都是用的war包,运行在 tomcat 等应用服务器上。但是有个别项目需要发布为 *.jar 包格式。想着部署后使用 systemd 来进行管理。

创建用户与组

首先创建一个单独的应用账号来运行我们的 java jar程序

  1. 创建系统组
    # groupadd -r chain
    
  2. 使用默认组来创建系统用户
    # useradd -r -s /bin/false -g chain blockchain
    
  3. 确认用户与组是否正确创建使用
    # id blockchain
    uid=996(blockchain) gid=994(chain) groups=994(chain)
    

编写service文件

现在我们来创建一个 systemd 服务文件来管理我们的应用程序

# vim /usr/lib/systemd/system/bc-server.service

内容如下:

[Unit]
Description=blockchain server
After=network.target

[Service]
Type=simple
User=blockchain
WorkingDirectory=/data/blockchain/server/
Restart=on-failure
RestartSec=5s
ExecStart=/data/jdk/jdk1.8.0_231/jre/bin/java -jar bc-server.jar --spring.config.location=application.yml

[Install]
WantedBy=multi-user.target

保存退出后修改上述配置文件提到的 /data/ 文件夹(jre与jar包文件顶级父路径)所有权限,确保有足够权限运行程序。

# chown -R blockchain:chain /data/

重载所有配置

# systemctl daemon-reload

完成上述步骤后即可使用systemd来启动程序了

# systemctl start bc-server

标题:使用systemd运行java jar应用程序
作者:akiya789
地址:https://little-star.love/articles/2020/02/17/1581921658285.html

添加新评论