我在centos8上部署了一个java服务,使用java -jar xx.jar来启动服务,但是对于停掉服务,就得使用kill命令,所以想着把它做成个服务
原始命令如下:/www/server/java/jdk-17.0.8/bin/java -jar -Xmx1024M -Xms256M /home/zrapi/nhis-service/nhis-service.jar
步骤如下
1. 使用root用户新增一个配置文件
sudo vi /etc/systemd/system/nhis-service.service
2. 编辑服务单元文件
[Unit] Description=NHIS Service After=network.target [Service] User=zrapi WorkingDirectory=/home/zrapi/nhis-service ExecStart=/www/server/java/jdk-17.0.8/bin/java -jar -Xmx1024M -Xms256M /home/zrapi/nhis-service/nhis-service.jar SuccessExitStatus=143 Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target
3. 刷新服务单元文件
sudo systemctl daemon-reload
4. 授权
现在服务已经配置成功,我现在要使用非root用户来启动服务,直接使用启动服务命令,会要求输入root密码,我们可以使用root用户来执行visudo命令,来完成对其他用户的授权
sudo visudo 新增一下内容 zrapi ALL=(ALL) NOPASSWD: /bin/systemctl start nhis-service, /bin/systemctl stop nhis-service, /bin/systemctl status nhis-service, /bin/systemctl restart nhis-service
常用服务相关命令如下
sudo systemctl start xxx -- 启动服务 sudo systemctl stop xxx -- 停止服务 sudo systemctl start xxx -- 重启服务 sudo systemctl status xxx -- 服务状态