这里写自定义目录标题

  • Tomcat自启动脚本配置
    • 通过VIM添加tomcat-monitor.sh脚本
    • 给文件赋可执行权限
    • 执行脚本文件
    • 添加定时任务
  • Springboot自启动脚本
    • Spring boot的执行脚本
    • start.sh脚本

Tomcat自启动脚本配置

通过VIM添加tomcat-monitor.sh脚本

添加下面命令到脚本中

# 获取tomcat进程ID
TomcatID=$(ps -ef |grep tomcat |grep -w 'org.apache.catalina.startup.Bootstrap'|grep -v 'grep'|awk '{print $2}')
# tomcat启动程序(这里注意tomcat实际安装的路径)
StartTomcat=/data/tomcat8/bin/startup.sh
TomcatCache=/data/tomcat8/work
#定义要监控的页面地址
WebUrl=http://192.168.195.10:8080/
#日志输
GetPageInfo=/data/monitor/monitorlogs/TomcatMonitor.Info
TomcatMonitorLog=/data/monitor/monitorlogs/TomcatMonitor.log
Monitor()
{echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]"
if [ $TomcatID ];then  # 这里判断TOMCAT进程是否存在
echo "[info]当前tomcat进程ID为:$TomcatID,继续检测页面..."
# 检测是否启动成功(成功的话页面会返回状态"200")
TomcatServiceCode=$(curl -s -o $GetPageInfo -m 10 --connect-timeout 10 $WebUrl -w %{http_code})
if [ $TomcatServiceCode -eq 200 ];then
echo "[info]页面返回码为$TomcatServiceCode,tomcat运行正常,测试页面正常......"
echo "" > $GetPageInfo # 清空GetPageInfo
else
echo "[error]tomcat页面出错,请注意......状态码为$TomcatServiceCode,错误日志已输出到$GetPageInfo"
echo "[error]页面访问出错,开始重启tomcat"
kill -9 $TomcatID   # 杀掉原tomcat进程
sleep 3  #等待3秒
# rm -rf $TomcatCache # 清理tomcat缓存
$StartTomcat
sleep 300  #等待5分钟
fi
else
echo "[error]tomcat进程不存在!tomcat开始自动重启..."
echo "[info]$StartTomcat,请稍候......"
# rm -rf $TomcatCache
$StartTomcat
sleep 300  #等待5分钟
fi
echo "------------------------------"
}
Monitor >>$TomcatMonitorLog

给文件赋可执行权限

chmod +x tomcat-mon![在这里插入图片描述](https://img-blog.csdnimg.cn/20200603150405992.png#pic_center)itor.sh

执行脚本文件

./tomcat-monitor.sh

关闭tomcat,通过运行脚本,tomcat可以启动

添加定时任务

通过命令打开定时任务

crontab -e

添加命令

*/1 * * * * /data/monitor/tomcat-monitor.sh #定义每分钟检查tomcat,如果关闭就重启

运行可能会出现如图异常

解决办法
编辑tomcatsetclasspath.sh文件

vim /data/tomcat8/bin/setclasspath.sh

加入以下命令

export JAVA_HOME=/usr/local/apps/jdk1.8/
export JRE_HOME=/usr/local/apps/jdk1.8/jre


一分钟后查案运行脚本可看到

正常运行情况

Springboot自启动脚本

操作流程和tomcat自启动脚本运行类似。
有两点区别:

Spring boot的执行脚本


```powershell
ProjectName=Security2 #定义要监控的页面地址3 WebUrl=http://192.168.195.10/4 #文件位置5 File="luban.jar"6 SecurityID=$(ps -ef | grep luban.jar | grep -v 'grep' | awk '{ print $2 }')7 # ${ProjectName}启动程序(这里注意项目启动文件实际存放的路径)8 StartSecurity=/data/ssp/ssp-security/start.sh #日志输出9 # StartSecurity=nohup java  -Xms1024m -Xmx2048m -jar /data/ssp/ssp-security/luban.jar >> /data/monitor/SecurityMonitorlogs/start.out 2>&1 & #日志输出10 GetPageInfo=/data/monitor/SecurityMonitorlogs/SecurityMonitor.Info11 SecurityMonitorLog=/data/monitor/SecurityMonitorlogs/SecurityMonitor.log12 Monitor()13 {14 echo "[info]开始监控$ProjectName...[$(date +'%F %H:%M:%S')]"15 if [ $SecurityID ];then  # 这里判断项目进程是否存在16 echo "[info]当前$ProjectName 进程ID为:$SecurityID,继续检测页面..."17 # 检测是否启动成功(成功的话页面会返回状态"200")18 SecurityServiceCode=$(curl -s -o $GetPageInfo -m 10 --connect-timeout 10 $WebUrl -w %{http_code})19 if [ ${SecurityServiceCode} -eq 200 ];then20 echo "[info]页面返回码为$SecurityServiceCode,$ProjectName 运行正常,测试页面正常......"21 echo "" > $GetPageInfo # 清空GetPageInfo22 else23 echo "[error]$WebUrl 页面出错,请注意......状态码为$SecurityServiceCode,错误日志已输出到$GetPageInfo"24 echo "[error]页面访问出错,开始重启$ProjectName"25 kill -9 ${SecurityID}   # 杀掉原${ProjectName}进程26 sleep 3  #等待3秒27     28 $StartSecurity29 sleep 300  #等待5分钟30 fi31 else32 echo "[error]$ProjcetName 进程不存在!开始自动重启..."33 echo "[info]$StartSecurity,请稍候......"34 $StartSecurity35 sleep 300  #等待5分钟36 fi37 echo '------------------------------'38 }39 Monitor >>$SecurityMonitorLog

上面命令中引用了一个start.sh启动项目的脚本

start.sh脚本

source /etc/profile
nohup java  -Xms1024m -Xmx2048m -jar /data/ssp/ssp-security/luban.jar >> /data/monitor/SecurityMonitorlogs/start.out 2>&1 &

注:source/etc/profile命令必须添加,否则可能会报异常

nohup: failed to run command ‘java’: No such file or directory

参考连接https://blog.csdn.net/lixld/article/details/88054563

问题交流群,不定期分享各种技术文档:

QQ群号:464512055

群二维码:

这是一个神器的二维码,扫描之后你会少掉一块钱。

Tomcat和Springboot自启动脚本相关推荐

  1. Tomcat开启APR模式并设置Tomcat为开机自启动服务

    一.Tomcat Tomcat Connector(Tomcat连接器)有三种运行模式:bio.nio.apr. 1.BIO模式 ​ 阻塞式I/O操作,表示Tomcat使用的是传统Java I/O操作 ...

  2. Tomcat部署SpringBoot项目

    Tomcat部署SpringBoot项目 1.SpringBoot项目处理 ①配置pom.xml <!-- 需要排除内嵌的tomcat,才能让其用tomcat部署 --><depen ...

  3. Oracle 11G for redhat 自启动脚本

    Oracle 11G for redhat 自启动脚本 在$ORACLE_HOME/bin中,有dbstart和dbshut这两个脚本,可以使用这两个oracle自带的脚本实现oracle的开机自启动 ...

  4. Linux shell 自启动脚本写法

    # ********************************************************************** # Linux shell 自启动脚本写法 # 说明: ...

  5. tomcat 多实例启动脚本

    为什么80%的码农都做不了架构师?>>>    tomcat 多实例启动脚本 代码如下: #!/bin/sh# # Tomcat start/stop shell multiple ...

  6. 开机自启动脚本_Linux配置开机自启动执行脚本的两种方法

    代码来源:oschina 原文作者:醉生梦死zsms 原文链接:https://my.oschina.net/u/3285916/blog/1622358 本文版权归原作者所有,如有侵权请立即与我联系 ...

  7. systemd的程序自启动脚本编写

    以FreeSWITCH的自启动脚本为例. 一. 编写freeswitch.service文件 1 [Unit]2 Description=FreeSWITCH3 After=syslog.target ...

  8. OpenWrt启动过程分析+添加自启动脚本【转】

    一.OpenWrt启动过程分析 转自: http://www.eehello.com/?post=107 总结一下OpenWrt的启动流程:1.CFE->2.linux->3./etc/p ...

  9. bash 脚本中激活conda环境_ubuntu18.10目标检测算法环境部署+开机自启动脚本创建screen下的web服务...

    内容概要 cuda+cudnn+python环境安装 ubuntu18的开机自启动脚本 screen服务开启 以我个人的实践来看,把python开发的算法封装成webserver的服务供前端程序调用是 ...

最新文章

  1. java setdate_java---Set,Date
  2. 【DIY】手把手教你 DIY 最便宜的 arduino 温湿度计,详细图文视频教程
  3. html图片墙 无限滚动,尝试用CSS3实现无限循环的无缝滚动
  4. [深入学习C#]LINQ查询表达式详解(1)——基本语法、使用扩展方法和Lambda表达式简化LINQ查询
  5. ios(safar/微信)返回不执行js
  6. 《JAVA与模式》之装修者模式
  7. 不知道能不能赶上用这技术的那一天
  8. python selenium canvas_selenium webdriver 实现Canvas画布自动化测试
  9. 《AutoCAD 2016中文版从入门到精通》——1.5 基本输入操作
  10. SQL语句优化的30种方法,总结的太棒了
  11. 人工智能能为旅游业带来多大的想象空间?
  12. 用什么软件可以编辑pdf文件
  13. php图片颤抖,如何实现图片抖动效果
  14. 对游戏编程开发的一点思考
  15. 「POI2012」约会 Rendezvous
  16. 【从Java转C#】第八章:委托、lambda、事件
  17. 爬虫学习笔记 - day02
  18. 错误解决:hive报错Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
  19. (转)很暧昧的话 最暧昧的话 男女间那些玩火暧昧话
  20. 狂补呼叫中心相关知识,将收集的资料贴于此

热门文章

  1. html图片撑开盒子,css背景图撑开盒子高度
  2. 迅雷php源码,PHP生成迅雷、快车、旋风等软件的下载链接代码实例
  3. 300字美文摘抄加赏析
  4. 游戏安全资讯精选 2017年第十六期:房卡式棋牌游戏涉赌博风波,抓娃娃火爆市场背后的安全隐患需警惕,Linux内核的Huge Dirty Cow权限提升漏洞...
  5. LZX 定义 - 转帖
  6. GEE:GEE平台怎么提高用户内存限制
  7. 榆树计算机课,吉林省榆树市弓棚镇武龙中学校七年级信息技术:第九课 Excel表格计算 教案+课件 (2份打包)...
  8. 9091端口及8998端口
  9. ZT:【ROOT教程】S7/S7E 8890版root及替换recovery中文教程
  10. 关于 国产麒麟系统Qt强制退出应用程序qApp->exit()无效 的解决方法