以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