精华内容
下载资源
问答
  • 背景: 虽然是云服务器,不过检查...于是,就生出了要在服务器重启自动启动nginx和tomcat。 思路: 用操作系统的定时任务是最稳的做法。定时任务要注意启动就运行和登录运行的区别。tomcat启动要延迟...

    背景:

           虽然是云服务器,不过检查莫名其妙的就被重启了。而我部署的刚好是一个24h运行要求的应用,nginx和tomcat都需要自己在服务器系统重启后去启动。烦,经常接到用户通知的时候又没有在电脑面前。于是,就生出了要在服务器重启后自动启动nginx和tomcat。

    思路:

          用操作系统的定时任务是最稳的做法。定时任务要注意启动时就运行和登录时运行的区别。tomcat启动要延迟一点,因为数据库(我的是mysql)要先启动。mysql本身安装就是系统服务并自动启动的,所以不用考虑数据库的启动问题。

    开干:

          启动nginx的bat脚本如下:

          

    cd /d D:\applications\nginx-1.15.1
    start nginx

        延迟启动tomcat的脚本如下:

        

    choice /T 60 /C ync /CS /D y /n
    cd /d D:/apache-tomcat-7.0.54-gqzg-8082/bin
    call startup.bat

      备注:第一行是延迟60秒。第三行用的call,没有用start.

      然后把这2个bat加入到操作系统的启动任务里面去。两次重复的操作:打开控制面板=》任务计划=》添加任务计划,根据向导选择bat文件,注意的是任务执行周期选择时要选择“计算机启动时”。其他没有什么要注意的。

    展开全文
  • linux定时自动重启TOMCAT,SHELL脚本, 按制定时间启动脚本,并自动查找TOMCAT进程,关闭TOMCAT进程,然后再启动TOMCAT进程,服务器压力过大,或遭受攻击时,TOMCAT集群时自动维护出问题的TOMCAT。
  • 我的服务器是使用tomcat的,不时tomcat的进程会突然结束掉,不知道为什么,从日志上看也...我打算利用系统的cron服务来自动启动tomcat,很简单,大约1分钟检查一次tomcat的进程,如果没有,就启动之,脚本如下:...

    我的服务器是使用tomcat的,时不时tomcat的进程会突然结束掉,不知道为什么,从日志上看也没有任何可疑之处,貌似就这样突然没了,接下来的日志都是重新启动tomcat之后打印的了。原因找不到,但要找变通方法,不要出了问题后总要上服务器去自己重启tomcat。我打算利用系统的cron服务来自动启动tomcat,很简单,大约1分钟检查一次tomcat的进程,如果没有,就启动之,脚本如下:

    #!/bin/bash
    export JRE_HOME=/usr/local/jre
    if [ `ps -ef | egrep 'tomcat' | egrep -v egrep | wc -l` -gt 0 ]; then
    exit 1
    fi
    echo `date`" tomcat restart" >> ~/shell/tomcat_restart.log
    /usr/local/tomcat/bin/startup.sh

    写这个脚本的时候千万注意:空格不要乱加!shell编程和别的编程不太一样,空格有特殊含义。脚本在启动tomcat的时候,会打印一个log,到~/shell/tomcat_restart.log中,其中包括了一个时间信息,方便我去查找原因(虽然我现在还是找不到原因)。

    接下来就是配置crontab。

    $crontab -e

    然后编辑内容为(假如你的shell文件保存在~/shell/check_and_start_server.sh):

    * * * * * ~/shell/check_and_start_server.sh

    保存并退出crontab的编辑,然后启动cron服务:

    /etc/init.d/crond start

    这样一来,每一分钟,cron服务就会执行一次检查。启动tomcat大约需要10秒钟,所以最坏的情况是你的服务器可能会中断1分钟多一点的时间(考虑服务器是在14:20:01秒退出的,cron服务刚检查过,下次检查是14:21:00,这时候启动tomcat,大约到14:21:10这样启动完成)。

    转载于:https://www.cnblogs.com/guogangj/p/4031654.html

    展开全文
  • 一开始没太注意这个问题,每当服务器挂了之后就手动重启,直到昨天有事没在电脑旁,服务器又宕机了,结果负责前端开发的同学只能等到昨晚我回去时重启服务器才能继续工作。这也让我意识到是时候该解决这个问题了。 ...

    笔者最近将自己团队开发的一个APP后端部署到腾讯云主机上。由于使用的是一个月一元的腾讯的学生机,配置(1核,1GB内存,1Mbps带宽)确实太低。导致一旦有多个用户同时使用时服务器总是宕机。一开始没太注意这个问题,每当服务器挂了之后就手动重启,直到昨天有事没在电脑旁,服务器又宕机了,结果负责前端开发的同学只能等到昨晚我回去时重启服务器才能继续工作。这也让我意识到是时候该解决这个问题了。

          我是用的CentOS操作系统,在云主机上安装Tomcat作为应用服务器。我在网上找了好久都没发现一些好的解决方法,好多博客上讲的方法要么就跟我的情况不同,要么极其复杂,直到在推酷上找到这一篇:http://www.tuicool.com/articles/MJnAZrf 。这一篇文章介绍的办法是可行的,不过一些命令有错(例如状态码获取等,可能不同环境或者其他原因导致的),我仔细看了配置修改了之后才成功的。因此我就打算写下这篇文章记录下。

          监控启动脚本monitor.sh:

    #!/bin/sh
    # 获取tomcat进程ID  /usr/local/tomcat
    TomcatID=$(ps -ef |grep tomcat |grep -w 'tomcat'|grep -v 'grep'|awk '{print $2}')  
     
    # tomcat启动程序(这里注意tomcat实际安装的路径)  
    StartTomcat=/usr/local/tomcat/bin/startup.sh
     
    # 定义要监控的页面地址  
    WebUrl=http://localhost:8080
     
    # 日志输出 
    TomcatMonitorLog=/usr/local/tomcat/logs/TomcatMonitor.log 
     
    Monitor() 
    {  
      echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]"  
      if [[ $TomcatID ]];then # 这里判断TOMCAT进程是否存在  
        echo "[info]当前tomcat进程ID为:$TomcatID,继续检测页面..."  
        # 检测是否启动成功(成功的话页面会返回状态"200")  
        TomcatServiceCode=$(curl -I -m 10 -o /dev/null -s -w %{http_code} $WebUrl)  
        if [ $TomcatServiceCode -eq 200 ];then  
            echo "[info]页面返回码为$TomcatServiceCode,tomcat启动成功,测试页面正常......"  
        else  
            echo "[error]tomcat页面出错,请注意......状态码为$TomcatServiceCode,错误日志已输出到$GetPageInfo"  
            echo "[error]页面访问出错,开始重启tomcat"  
            kill -9 $TomcatID  # 杀掉原tomcat进程  
            sleep 3  
            rm -rf $TomcatCache # 清理tomcat缓存  
            $StartTomcat  
        fi  
      else  
        echo "[error]tomcat进程不存在!tomcat开始自动重启..."  
        echo "[info]$StartTomcat,请稍候......"  
        #rm -rf $TomcatCache  
        $StartTomcat  
      fi  
      echo "------------------------------"  
    }  
    Monitor>>$TomcatMonitorLog
     ———————————————— 
    版权声明:本文为CSDN博主「嵩园」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qwssd/article/details/74010836

    具体的过程上面的代码讲得比较清楚,就是先根据有无tomcat的进程ID判断tomcat是否已启动,如果未启动,直接根据最上面配置的StartTomcat路径启动tomcat。如果存在tomcat进程,使用curl访问配置的WebUrl里指定的要监控的地址,若访问成功,返回状态码为200,则tomcat服务器正常,否则tomcat出现异常,重启tomcat。

          创建好上面的monitor.sh文件后,执行命令跟脚本以权限:

     

    chmod a+x monitor.sh


          然后启动脚本:

     

    ./monitor.sh


          启动脚本后就能在TomcatMonitor.log查看日志信息。
           

          上面实现的是监控tomcat,启动tomcat仍然需要手工执行。为了能够实时监控tomcat,实现在tomcat宕机后自动重新启动,需要安装计划任务服务程序crontab。

          crontab定时服务,利用“任务计划”,可以将任何脚本、程序或文档安排在某个最方便的时间运行。通俗地讲就是定时执行某个脚本、程序。

          安装crontab  

          使用yum安装:

    1.查看crontab是否安装:

    yum -y install vixie-cron

    yum -y install crontabs

    2.启动:

    systemctl start crond.service

    3.查看状态:

    systemctl status crond.service

    4.关闭:

    systemctl stop crond.service

    5.重启:

    systemctl restart crond.service

    6.开机运行:

    systemctl enable crond.service
      
          接着就可以添加crontab定时服务了。

          要添加服务,可以在命令行输入:

    crontab -e 


          然后在里面添加服务,例如设置一分钟执行一次脚本(后面为你的monitor.sh所在位置):

    */1 * * * * /usr/local/monitor.sh


          更多具体的配置可以参考其他资料,这里就不多说了。
          可以使用

    crontab -l 


          查看crontab的服务,例如在我本机:

         

          最终使用tail -f TomcatMonitor.log查看结果如下:

     

     
     

     

     


     

    展开全文
  • 当我们在处理中文乱码或是配置数据源,我们要...Tomcat服务器在Eclipse中启动时,会自动发布Eclipse中部署的项目,但是我的项目是自己手动在外面部署的,Eclipse只认得在它里面部署的项目,因此它会创建一个新的serv

    当我们在处理中文乱码或是配置数据源时,我们要修改Tomcat下的server.xml和content.xml文件。
    但是当我们修改完后重启Tomcat服务器时发现xml文件又被还原了,修改无效果。

    为什么会还原?
    Tomcat服务器在Eclipse中启动时,会自动发布Eclipse中部署的项目,但是我的项目是自己手动在外面部署的,Eclipse只认得在它里面部署的项目,因此它会创建一个新的server.xml文件覆盖原来的文件,里面只有Eclipse中部署的项目。
    解决方法:
    1、解决方法一:
    设置Ecplise,取消掉自动发布功能。
    依次选择 Window-Preferences-Server-Launching,取消Automatically publish wen starting servers,点击OK,搞定
    这里写图片描述
    解决方法二:
    Ecplise项目中有一个Server项目,有一个Tomcat v7.0 Server at localhost-config,
    里面也有server.xml和content.xml,替换成你修改后的文件。Tomcat重新发布时会用这里的配置文件覆盖Tomcat下的conf下的文件。
    这里写图片描述

    展开全文
  • 目前维护着的项目是使用Seasar2框架搭建的,在启动tomcat服务,会自动加载数据库里的数据到map,然后代码里面就直接通过该map获取数据 一旦更改了被自动载入的表数据后,必须要重启服务才能反映到web上去。 以前...
  • 在配置gitlab触发jenkins自动构建项目的时候,在shell执行重启tomcat的时候失败的情况 问题点 从以上的图中可以看到jenkins已经构建成功了,然后shell中使用命令也能查看到tomcat的端口已经起来了,说明服务已经...
  • 目前在做一个网站项目...于是研究了一下tomcat如何设置成热启动,即修改源代码不需要重启tomcat服务器。方法如下:第一步: Tomcat安装目录下,修改 conf/server.xml 中的 Host 配置,设置其reloadable属性为tru...
  • 该脚本实现了在jenkins将包发送到linux服务器上后的自动关闭、发布、启动、测试启动是否成功的过程 思路 该思路以tomcat启动端口为8080,关闭端口为8005为例。tomcat自带了启动脚本startup.sh和停止脚本shutdown....
  • 我们在处理中文乱码或是配置数据源,我们要...Tomcat服务器在Eclipse中启动时,会自动发布Eclipse中部署的项目,但是我的项目是自己手动在外面部署的,Eclipse只认得在它里面部署的项目,因此它会创建一个新的se...
  • 自动准备 几百+ Tomcat在项目更新需要挨个上传战包这里写了个小脚本通过Flask进行管理当客户端发现与服务器版本重新自动拉取代码关闭服务替换重新启动服务编码...
  • 最近布署在测试环境下的服务器,有一个Tomcat服务一天左右就服务非常卡必须重启,服务卡的原因一半会也不好找,所以一个临时性的解决方案就此产生:每天定时重新启动Tomcat服务.定时回避系统内部定时器采集时间...
  • 到外地出差,新电脑跑环境tomcat,遇到加载一半卡死的问题,设置的是600秒,到600秒自动报错,加载超时。 发现是tomcat服务中原有的一个项目移除的时候没删除干净。 双击Servers 下的 tomcat 服务器 查看右边的...
  • 配置Tomcat时server.xml和content.xml自动还原问题 当我们在处理中文乱码或是配置数据源,我们要修改Tomcat下的server.xml和content...Tomcat服务器在Eclipse中启动时,会自动发布Eclipse中部署的项目,但是
  • 转: 启动eclipse导致Tomcat的配置文件重置  导入一个项目,需要在Tomcat的配置文件中配置JNDI数据源,需要修改Tomcat下的...在Eclipse中启动Tomcat服务器时,会自动发布Eclipse中部署的项目,但是我的项目是自...
  • Tomcat服务器在Eclipse中启动时,会自动发布Eclipse中部署的项目,但是我的项目是自己手动在外面部署的,Eclipse只认得在它里面部署的项目,因此它会创建一个新的server.xml文件覆盖原来的文件,里面只有Eclipse中...
  • 当我们在处理中文乱码或是配置数据源,我们要修改Tomcat下的server.xml和content.xml文件。 但是当我们修改完后重启Tomcat服务器时发现xml文件又...Tomcat服务器在Eclipse中启动时,会自动发布Eclipse中部署的项...
  • 当我们在处理中文乱码或是配置数据源,我们要修改Tomcat下的server.xml和content.xml文件。 但是当我们修改完后重启Tomcat服务器时发现xml文件又被...Tomcat服务器在Eclipse中启动时,会自动发布Eclipse中部...
  • Tomcat注册成系统服务并随机启动

    千次阅读 2018-08-24 09:20:37
    这样就会导致服务器重启的时候,都要手动开启tomcat服务或者不小心关闭tomcat服务器造成项目自动关闭。 解决方案:为了解决上述问题,需要将Tomcat注册成系统服务并随机启动。  前言:设置服务自动启动tomca...

空空如也

空空如也

1 2 3 4 5
收藏数 87
精华内容 34
关键字:

服务器重启时自动启动tomcat