1.创建项目启动脚本

我这里以一个SpringBoot项目为例,一定要按照下面的脚本写,只需要根据你项目的实际情况改 ​​JAVA_HOME​​​ 、​​JAR_HOME​​​、​​FILENAME​​ 三个变量即可,其他可直接套用!

yuedu.sh
#!/bin/bash
#主要目的用于开机启动服务,不然 启动jenkins.war包没有java -jar的>权限
JAVA_HOME=/usr/local/jdk1.8.0_201
#你的项目jar包存放位置
JAR_HOME=/home/jar
FILENAME=$(find $JAR_HOME -name 'yuedu**.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/yuedu/yuedu.sh

补充:

启动项目

/usr/local/yuedu/yuedu.sh start

停止项目

/usr/local/yuedu/yuedu.sh stop

3.配置开机启动服务

3.1 到 ​​/lib/systemd/system​​​ 服务注册目录下创建 ​​yuedu.service​

改 ​​Description​​​ 、​​ExecStart​​​ 、​​ExecStop​

[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
3.2创建好服务后,执行一下命令刷新配置
systemctl daemon-reload
3.3启动脚本
systemctl start yuedu.service
3.4查看启动脚本状态是否启用成功(失败的话,看错误日志进行修改)

失败时,查看日志:journalctl -xe

systemctl status yuedu.service

二十、Centos 7 Linux创建项目启动脚本以及开机启动项目_开机启动

3.5设置开机启动
systemctl enable jenkins.service
3.6查看设置开机启动的服务列表
systemctl list-units --type=service

二十、Centos 7 Linux创建项目启动脚本以及开机启动项目_java_02

3.7停止服务命令
systemctl stop yuedu.service