Centos 7将java jar包自定义开机启动服务

    如果没有使用敏捷部署方式,每次服务器开机关机,都要通过 nohup java -jar hello.jar > /dev/null & 命令进行服务的启动,未免太过于繁琐,通过自定义服务的方式, 省去不少麻烦。

   1. 先上 jar包的启动脚本,

#!/bin/bash
#@author :lizhenjiang
#EMAIL:idea_zhenjiang@163.com
JAVA_HOME=/usr/local/app/jdk1.8.0_191    
PATH=$PATH:$JAVA_HOME/bin                     # shell脚本必须指定,因为脚本不会自动加载环境变量,不写的话导致出现此错误
app='/usr/local/hello/hello.jar'    #jar包的决定路径
args='-server -Xms1024m -Xmx1024m -XX:PermSize=128m -XX:SurvivorRatio=2 -XX:+UseParallelGC'  #java程序启动参数,可不写
LOGS_FILE=/dev/null                           # 把打印的日志扔进垃圾桶

cmd=$1                                        #获取执行脚本的时候带的参数
pid=`ps -ef|grep java|grep $app|awk '{print $2}'`                # 抓取对应的java进程

startup(){
  aa=`nohup java -jar $args $app >> $LOGS_FILE 2>&1 &`
  echo $aa
}

if [ ! $cmd ]; then
  echo "Please specify args 'start|restart|stop'"
  exit
fi

if [ $cmd == 'start' ]; then
  if [ ! $pid ]; then
    startup
  else
    echo "$app is running! pid=$pid"
  fi
fi

if [ $cmd == 'restart' ]; then
  if [ $pid ]
    then
      echo "$pid will be killed after 3 seconds!"
      sleep 3
      kill -9 $pid
  fi
  startup
fi

if [ $cmd == 'stop' ]; then
  if [ $pid ]; then
    echo "$pid will be killed after 3 seconds!"
    sleep 3
    kill -9 $pid
  fi
  echo "$app is stopped"
fi

写好脚本之后,需要为脚本添加可执行权限

chmod +x hello-service.sh 

2. 自定义开机启动命令

  2.1 进入到/etc/systemd/system/

    # vi hello-service.service

[Unit]
Description=hello-service
after=network.target

[Service]
User=root
Group=root
Type=forking
KillMode=process
ExecStart=/bin/sh /usr/local/hello/hello-service.sh start
ExecReload=/bin/sh /usr/local/hello/hello-service.sh restart
ExecStop=/bin/sh /usr/local/hello/hello-service.sh stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target  

2.2 添加执行权限

   # chmod +x hello-service.service

2.3 添加开机启动服务
systemctl enable hello-service.service   #添加开机启动服务

systemctl start hello-service.service     # 启动服务

systemctl stop hello-service.service    #关闭服务

systemctl restart hello-service.service   # 重启服务

systemctl status hello-service.service    #查看服务状态

systemctl disable hello-service.service    #取消开机启动

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值