centos把可执行程序做成服务_centos7下将java -jar命令运行一个项目做成systemd服务...

有些时候运行一个java项目在linux下通过一条简单的java命令即可,如:

#nohup java -jar jenkins.war & ###这里为后台运行jenkins

在此背景下,java进程因各种原因导致进程被kill。或者主动结束进程忘记开启。程序不会自动启动起来。

可以考虑将其做成systemd服务,当进程挂掉之后会自动启动起来

1.环境介绍(目录结构)

### 实验环境为一台机器运行多个jar包或者war包,且包存放在/opt/sdk目录下。且有启动和关闭脚本,logs日志目录

╭─◆root@ localhhost opt/sdk

╰─># ll

total 335684

-rw-r--r-- 1 www www 34698758 Mar 1 18:08 DibDirector.jar

-rw-r--r-- 1 www www 44491920 Mar 1 12:29 DibFinance.jar

-rw-r--r-- 1 www www 34686621 Mar 1 12:28 DibGovernance.jar

-rw-r--r-- 1 www www 49526812 Nov 6 20:31 DibManage.jar

-rw-r--r-- 1 www www 74093277 Nov 6 20:29 DibResource.jar

-rw-r--r-- 1 www www 23007795 Nov 5 17:14 DibSdk.jar

-rw-rw-r-- 1 www www 34484128 Mar 18 23:08 DibShares.jar

-rw-r--r-- 1 www www 48724992 Mar 1 12:28 DibSign.jar

drwxrwxr-x 2 www www 168 Mar 22 09:33 logs/

-rwxrwxr-x 1 www www 219 Mar 18 23:09 start.sh*

-rwxrwxr-x 1 www www 89 Nov 6 13:44 stop.sh*

2.启动脚本通过传递的第一个参数决定启动哪一个jar包

╰─># cat start.sh

#!/bin/bash

export JAVA_HOME=/opt/local/jdk

export PATH=$JAVA_HOME/bin:$PATH

CMD_PATH="/opt/sdk"

sdk=$1

#cd $CMD_PATH

java -jar ${CMD_PATH}/${sdk}.jar > ${CMD_PATH}/logs/${sdk}.log &

echo $! > $CMD_PATH/logs/${sdk}.pid

3.关闭脚本通过传递的第一个参数关闭某一个jar程序

╰─># cat stop.sh

#!/bin/bash

CMD_PATH="/opt/sdk"

sdk=$1

PID=$(cat $CMD_PATH/logs/${sdk}.pid)

kill -9 $PID

4.此处以DibDirector.jar为例:新建DibDirector.service文件

╰─># cat /etc/systemd/system/DibDirector.service

# Systemd unit file for tomcat

[Unit]

Description=Dibcn SDK application

After=syslog.target network.target

[Service]

Type=forking

Environment=JAVA_HOME=/opt/local/jdk

ExecStart=/opt/sdk/start.sh DibDirector

ExecStop=/opt/sdk/stop.sh DibDirector

PrivateTmp=true

User=www

Group=www

UMask=0007

RestartSec=5

Restart=always

[Install]

WantedBy=multi-user.target

5.将其开机设置为开机启动

╰─># systemctl enable DibDirector.service

6.备注

1.启动和关闭脚本必须赋予执行权限

2.例子用户权限全部为www用户,即为www用户启动服务

3.不同情况可根据此笔记适当修改,即可使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值