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
的前缀。