服务器Springboot项目服务化,开机自启动

本文介绍如何通过编写Shell脚本来启动和停止jar包,并配置开机自启。包括设置权限、编写启动与停止脚本,以及如何配置systemd服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以boot项目为例:
jar包目录为:/usr/local/dcn
在该目录下创建文件:dcn.sh
只需要根据你项目的实际情况改 JAVA_HOME 、JAR_HOME、FILENAME 三个变量即可,其他可直接套用!

dcn.sh
#!/bin/bash
#主要目的用于开机启动服务,不然 启动jenkins.war包没有java -jar的>权限
JAVA_HOME=/usr/local/jdk1.8
#你的项目jar包存放位置
JAR_HOME=/usr/local/dcn
FILENAME=$(find $JAR_HOME -name 'dcn.jar')
echo $FILENAME
JARNAME=${FILENAME##*/}

pid=`ps -ef | grep $JARNAME | grep -v 'grep'| awk '{print $2}'| wc -l`
  if [ "$1" = "start" ];then
  if [ $pid -gt 0 ];then
  echo $JARNAME is already runing
else
  #java启动服务 配置java安装根路径,和启动war包存的根路径
  nohup $JAVA_HOME/bin/java -jar $JAR_HOME/$JARNAME>yuedu.log &
  fi
  elif [ "$1" = "stop" ];then
  exec ps -ef | grep $JARNAME | grep -v grep | awk '{print $2}'| xargs kill -9
  echo $JARNAME is stop..
else
  echo "Please input like this:"./yuedu.sh start" or "./yuedu.sh stop""
  fi
注意:在写shell脚本时,开头一定要加上#!/bin/bash,否则执行该脚本会报错

2、让yuedu.sh有可执行权限

chmod +x /usr/local/dcn/dcn.sh

启动脚本:./dcn.sh start
停止脚本:./scn.sh stop
3、配置开机启动服务
3.1 到 /usr/lib/systemd/system 服务注册目录下创建 dcn.service

[Unit]
Description=Yuedu
After=network.target
 
[Service]
Type=forking
ExecStart=/usr/local/yuedu/yuedu.sh start
ExecReload=
ExecStop=/usr/local/yuedu/yuedu.sh stop
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target

修改 Description 、ExecStart 、ExecStop三个参数即可。
3.2 创建好服务后,执行一下命令刷新配置

systemctl daemon-reload

3.3 启动脚本

systemctl start dcn.service

3.4 查看启动脚本状态是否启用成功(失败的话,看错误日志进行修改)

systemctl status dcn.service

在这里插入图片描述
3.5 设置开机启动

systemctl enable dcn.service

3.6 查看设置开机启动的服务列表

systemctl list-units --type=service

在这里插入图片描述

3.7 停止服务命令

systemctl stop dcn.service
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值