由前一篇文章开始折腾supervisor,想玩玩tomcat异常退出后使用supervisor自动让tomcat重新启动,
随即丢了一个tomcat在服务器里面,本来就没有放任何项目,空跑在那边,只是tomcat有个界面就看看起没起来。
 
于是手动停止tomcat的进程触发supervisor自动拉起服务,应该是没有问题的,但是,来来回回启动了个两三次,突然发现,tomcat竟然起不来了!

随即查阅下日志:

root@test-s1 bin]# tail -f ../logs/catalina.out
19-Jun-2018 15:57:06.666 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"]
19-Jun-2018 15:57:06.667 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
19-Jun-2018 15:57:06.667 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 535 ms
19-Jun-2018 15:57:06.684 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service Catalina
19-Jun-2018 15:57:06.684 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.1.15
19-Jun-2018 15:57:06.690 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /opt/apache-tomcat-8.1.15-server/webapps/ROOT

卡在这个启动状态至少由10分钟才能完全启动起来,而且每次都这样。。。空跑都能这么操蛋?部署个项目还得了?难道要半小时?

网上查阅到有个大神写的文章,大意就是下面这句话:

The library used for random number generation in Sun's JVM relies on /dev/random by default for UNIX platforms. This can potentially block the Oracle WebLogic Communication Services process because on some operating systems /dev/random waits for a certain amount of "noise" to be generated on the host machine before returning a result. Although /dev/random is more secure, Oracle recommends using /dev/urandom if the default JVM configuration delays Oracle WebLogic Communication Services startup.To determine if your operating system exhibits this behavior, try displaying a portion of the file from a shell prompt:head -n 1 /dev/random
Open the $JAVA_HOME/jre/lib/security/java.security file in a text editor.Change the line:securerandom.source=file:/dev/random
to read:securerandom.source=file:/dev/urandom
Save your change and exit the text editor.

就是linux提供随机数设备是/dev/random 和/dev/urandom,一般我们都只是都使用"/dev/random",这个参数做随机数(因为每本操蛋的书都是这么写的!也没人说过为啥。)
 
两个有区别,urandom安全性没有random高,但random需要时间间隔生成随机数。jdk默认调用random。
 
所以根据上面的说法,修改配置文件:

find / -name securerandom.source

找到Java.security文件,在文件中找到securerandom.source这个设置项,将其改为:

securerandom.source=file:/dev/urandom

修改完毕后,重启tomcat,瞬间启动完毕。

转载于:https://blog.51cto.com/luweiv998/2128332

重复启动Tomcat时,大概率出现Deploying web application direct相关推荐

  1. tomcat启动时日志卡在Deploying web application directory解决

    最近刚入手了阿里云ECS服务器,学生价入手的超级便宜,本以为是赚到了,谁知道tomcat安装完成后死活访问不了tomcat中的web项目.最后在查看tomcat启动日志中发现了[Deploying w ...

  2. linux启动tomcat很久或者很慢Tomcat启动时卡在“INFO: Deploying web application directory ......”的解决方法...

    解决方案: 找到jdk1.x.x_xx/jre/lib/security/java.security文件,在文件中找到securerandom.source这个设置项,将其改为: securerand ...

  3. 解决启动tomcat时,一直卡在Deploying web application directory的问题

    最近在linux上部署tomcat的时候遇到一个问题,tomcat启动的时候很慢很慢,看日志发现会在Deploying web application directory 卡很长时间,虽然最后等个十分 ...

  4. 启动tomcat时,一直卡在Deploying web application directory这块的解决方案

    本来今天正常往服务器上扔一个tomcat 部署一个项目的, 最后再启动tomcat 的时候 发现项目一直都访问不了,看了一下日志: root@iz8vbdzx7y7owm488t4d89z bin]# ...

  5. (亲测解决)Tomcat启动时卡在“ Deploying web application directory ”很久的解决方法

    目录 一.问题描述 二.问题原因 三.问题解决 一.问题描述 今天在实用阿里云的CentOS7搭建Tomcat的时候,当启动服务器的时候发现要很久网页才能访问,一看日志发现卡在Deploying we ...

  6. Tomcat启动时卡在“ Deploying web application directory ”很久的解决方法

    文章目录 一.问题描述 二.问题原因 三.问题解决 一.问题描述 今天在实用阿里云的CentOS7搭建Tomcat的时候,当启动服务器的时候发现要很久网页才能访问,一看日志发现卡在Deploying ...

  7. Eclipse启动Tomcat时45秒超时的解决方法

    Eclipse启动Tomcat时,默认配置的启动超时时长为45秒.假若项目需要加载的东西比较多,启动时间会比较久,如果启动超过45秒将会报错.有两种解决途径,方法只有一个,就是修改启动时间. 1. 修 ...

  8. 启动tomcat时 一闪而过解决方法

    [前文] 在实际开发中一般都是eclipse+tomcat(也许还会用到tomcat的插件),我们只需要在eclipse中单击servers上的按钮就可以成功启动tomcat了, 但是如果想在tomc ...

  9. idea启动tomcat时蓝屏

    idea启动tomcat时蓝屏 环境 1,windows10 2,tomcat8 3,jdk8 4,idea2020 解决方法: 因为之前安装的是绿色版jdk,然后再官网下载exe格式的jdk,ide ...

最新文章

  1. Spring Boot 2.0 热部署指南
  2. python numpy.meshgrid() 函数的用法(快速生成坐标矩阵)
  3. boost::detail::lexical_cast_stream_traits用法的测试程序
  4. linux手动注入网络数据_Linux网络 - 数据包的接收过程
  5. ServletFileUpload API详解
  6. c++ string类_C++|细说STL string类概貌及底层细节
  7. 机器狗vs警犬!在波士顿动力面前,真狗只能“战术撤退”
  8. 3月28日晚中央电视台出现重大故障?!
  9. Linux命令详解词典高频命令(2)
  10. chessbase(ChessBase Mega)
  11. c语言恶搞小程序自动关机,C语言的自动关机程序及捉弄人的小程序.doc
  12. GitLab之创建项目组及上传项目
  13. 如何为py图表添加坐标轴/标题/图例等辅助元素
  14. 【附源码】Python计算机毕业设计软件学院社团管理系统
  15. 中山大学计算机学院考研拟录取名单,中山大学2020考研拟录取名单汇总_中大20考研复试结果及拟录取情况_聚创中大考研...
  16. 5.Linux下的权限管理
  17. 最新《C++游戏服务器开发教程》
  18. run()和start()方法区别
  19. 动态路由协议 ❀ ISIS-中央系统到中央系统
  20. java 水印字体 斜_斜水印,重复水印,文字

热门文章

  1. 政策热市场冷 中国新能源汽车遇尴尬
  2. 003 C语言 输出名言
  3. 去日本东京旅行(1)-- 机场篇
  4. 安徽省大数据与人工智能竞赛经验分享-1【以2020竞赛规程为例】
  5. 区块链行业人才市场大盘点(附求职指南)
  6. 在ARCGIS中画一幅高程地图、地形图
  7. iOS 【奇巧淫技】获取webView内容高度
  8. 裸金属服务器能降级虚拟机不,裸金属服务器属于虚拟机吗
  9. HowToDoIt 开源框架爱好者组织发布第一份项目总结
  10. 刚性PCB和柔性PCB的区别