我正在开发Tomcat Web应用程序,因此需要能够重新启动Tomcat以加载代码更改。但是,有时Tomcat需要很长时间才能启动,因为主线程停在以下位置:
java.lang.Thread.State: RUNNABLE at org.apache.tomcat.jni.SSL.initialize(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.core.AprLifecycleListener.initializeSSL(AprLifecycleListener.java:214) - locked <119e583> (a java.lang.Class) at org.apache.catalina.core.AprLifecycleListener.lifecycleEvent(AprLifecycleListener.java:83) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:770) at org.apache.catalina.startup.Catalina.load(Catalina.java:530) at org.apache.catalina.startup.Catalina.load(Catalina.java:550) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:260) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:412)
该停顿是由于可用的熵太低(如运行cat / proc / sys / kernel / random / entropy_avail所示)。
当我开发代码时,我不在乎SSL引擎是否用一个好的随机数初始化。
我有什么办法可以将一些假熵转储到/ dev / rnd或强制Tomcat使用一些假熵?
我可以通过运行“ find /”更快地提高熵,但这需要一段时间才能产生足够的熵。
将环境变量RANDFILE设置为“ / dev / urandom”可使Tomcat使用此源进行SSL初始化。