> 文档中心 > Linux通过脚本部署SoringBoot(jar包),实现设置开机自启

Linux通过脚本部署SoringBoot(jar包),实现设置开机自启

目录

  • 1、创建工作目录
  • 2、创建启动脚本
  • 3、创建停止脚本
  • 4、设置开机自启

1、创建工作目录

创建jar部门的目录,并且将jar上传到该目录下

mkdir -p /home/java-server/test-demo

2、创建启动脚本

进入jar目录:

cd  /home/java-server/test-demo

创建脚本文件:

vim start.sh

启动脚本内容:

#!/bin/shexport LANG="en_US.UTF-8"cd /home/java-server/test-demorunMessage=`ps aux | grep \`cat pidfile.txt\``projectStartCommand="/usr/local/java/jdk1.8.0_131/bin/java -jar xxx.jar"if [[ $runMessage == *$projectStartCommand* ]]then    echo "Application has starting ,restarting..."    kill -9 `cat pidfile.txt`    nohup /usr/local/java/jdk1.8.0_131/bin/java -jar xxx.jar -java.tmp.dir=/home/java-server/test-demo/temp >/dev/null 2>&1 & echo $! > pidfile.txtelse    echo "Application has stopped ,starting..."    nohup /usr/local/java/jdk1.8.0_131/bin/java -jar xxx.jar -java.tmp.dir=/home/java-server/test-demo/temp >/dev/null 2>&1 & echo $! > pidfile.txtfi
  • 脚本中/home/java-server/test-demo就是jar包所在的,可以根据实际情况定。
  • xxx.jar为实际的jar名称
  • /usr/local/java/jdk1.8.0_131/bin/java为jdk环境所在路径。

3、创建停止脚本

进入jar目录:

cd  /home/java-server/test-demo

创建脚本文件:

vim stop.sh

启动脚本内容:

#!/bin/shcd /home/java-server/test-demoPID=$(cat pidfile.txt)if [ ${PID} ]; then    echo 'Application is stpping...'    echo kill $PID DONE    kill $PIDelse    echo 'Application is already stopped...'fi

4、设置开机自启

进入system:

# 进入systemcd /usr/lib/systemd/system/ 

创建自启脚本:

vim xxx.service

xxx.service为脚本的名称,一般来就是jar包前缀名称一致,比如:test-demo.service

内容如下:

[Unit]Description=xxxAfter=network.target[Service]Type=forkingExecStart=/home/java-server/test-demo/start.shExecStop=/home/java-server/test-demo/stop.shPrivateTmp=true[Install]WantedBy=multi-user.target
  • Description:描述,一般为项目名称
  • ExecStart:开启脚本位置
  • ExecStop:停止脚本位置

设置脚本权限:

# 自启文件chmod 777 xxx.service# 启动文件chmod 777  /home/java-server/test-demo/start.sh# 停止文件chmod 777  /home/java-server/test-demo/stop.sh

加入自启命令 :

systemctl daemon-reloadsystemctl enable xxx.service

启动|停止命令:

# 启动systemctl start xxx# 停止systemctl stop xxx
  • xxx就是xxx.service的前缀。