在linux系统中创建开机自启动应用和应用自启脚本。脚本如下:

start.sh   --启动目标应用的脚本

keeper.sh   --循环自启目标应用脚本,用于应用进程挂掉后的自启

install.sh   --应用安装脚本,第一次部署应用时执行

start.sh

#!/bin/sh 
#指定后台日志目录及日志文件名 
logfilePath="/home/myapp/logs/" 
logfileName=$logfilePath"nohup.log" 
#如果不存在则创建 
if [ ! -d "$logfilePath" ]; then 
  mkdir -p "$logfilePath" 
  touch "$logfileName" 
fi
#启动目标应用脚本【需要修改】 nohup java
-jar /home/myapp/myapp-0.0.1-SNAPSHOT.jar --spring.config.location=/home/myapp/config/application.properties >/home/myapp/logs/nohup.log 2>&1 &

keeper.sh

#!/bin/sh 
#应用bin目录【需要修改】 
appStartFile="/home/didi/bin/start.sh" 
#应用进程名称【需要修改】 
progressName="didijoin-0.0.1-SNAPSHOT.jar" 
while true;do 
#目标应用进程名称【需要修改】 
PIDS=`ps -ef|grep $progressName | grep -v grep|awk '{print $2}'` 
if [ "$PIDS" = "" ];then 
echo "the program[$progressName] is not running,restart it!" 
echo "restart..." 
sh "$appStartFile" 
fi 
sleep 3 
done

install.sh

#!/bin/sh 
#keeper.sh文件完整目录【需要修改】 
keeperFilePath="/home/myapp/bin/keeper.sh" 
#程序名称【需要修改】 
echo "install program[myapp]..." 
#向rc/local文件末尾追加启动keeper任务的脚本 
echo "sh $keeperFilePath">>/etc/rc.local 
echo "install program success!" 
echo "start program..." 
#日志目录【需要修改】 
nohup sh "$keeperFilePath" >/home/myapp/logs/install.log 2>&1 & 
echo "start program success!"

评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

shell判断文件是否存在