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

在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!"