在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!"
复制代码

 

posted @   Franson  阅读(819)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2017-08-07 nodejs应用在linux服务器中的部署
点击右上角即可分享
微信分享提示