重新启动Tomcat服务器时出现问题

时间:2017-06-02 04:58:21

标签: bash tomcat sh

我正在使用apache-tomcat-8.5.15并开始(startup.sh)&使用其shutdown.sh目录中包含的shell脚本停止(bin/)它。在我的自定义shell脚本文件中,当我写:

./shutdown.sh
./startup.sh

并且运行,它似乎工作正常。但是当我用

运行时
./shutdown.sh && ./startup.sh

显示

java.net.BindException: Address already in use (Bind failed)

说地址已被绑定。

为什么会这样?如何解决此错误?

或者,是否有一个可以重启tomcat的简单命令?

2 个答案:

答案 0 :(得分:0)

为什么会这样?如何解决此错误?

当您尝试在已经被其他应用程序或其他tomcat本身进程使用的端口上运行tomcat时,会出现此问题,

是的,你可以通过杀死或停止绑定到该端口的进程来解决这个问题。

答案 1 :(得分:0)

为什么会这样?如何解决此错误?

是否有&&不是问题。这只是一个测试错误。

这是因为

INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [38,251] milliseconds.

这部分耗时差不多40秒,因此当我用&&测试脚本时,shutdown.sh无法关闭tomcat进程,因为它处于初始化阶段。

要解决此问题,您可以在JAVA_OPT设置为dev/urandom。有关详细解决方案,请参阅this answer & comment

事实上,没有这个问题,无论哪种方式都可以。

是否有一个可以重启tomcat的简单命令?

可能不是。

starup.shshutdown.sh是否异步运行?

我对此没有明确的答案,但根据脚本中的代码(herehere),这与我的Tomcat版本相同,它们似乎没有是异步的。如果我错了,请纠正我。