如何避免运行apache tomcat的多个实例

时间:2013-10-24 07:36:26

标签: java apache tomcat

我在linux环境下使用apache-tomcat-7.0.41。在正常情况下(当tomcat没有任何应用程序,即webapps目录中的war文件时),只有当一个tomcat实例可以运行时。如果我们尝试使用启动脚本运行多个tomcat实例,则由于端口绑定异常而自动关闭。

但是,当我将我的应用程序的war文件放在webapps目录中时,启动脚本每次运行启动脚本时都会实例化一个新的tomcat实例。例如,如果我运行2次启动脚本,则在jps 2中显示Bootstrap进程。

我也无法使用关机脚本停止tomcat。

我想只运行一个tomcat实例。如果有人试图运行多个实例,它应该自动关闭。

有人能说出如何处理这种情况吗?

任何建议都会非常有用。

提前致谢!!

当我运行tomcat时,它的pid是8320,它正在使用下面的端口: tcp 0 0 :: ffff:127.0.0.1:8005 ::: * LISTEN 8320 / java
tcp 0 0 ::: 8009 ::: * LISTEN 8320 / java
tcp 0 0 ::: 22222 ::: * LISTEN 8320 / java
tcp 0 0 ::: 8080 ::: * LISTEN 8320 / java
udp 0 0 ::: 40161 ::: * 8320 / java
udp 0 0 :: ffff:192.168.122.108:11007 ::: * 8320 / java

调用shutdown脚本后,Bootstrap进程仍显示在jps中。它使用以下端口: udp 0 0 ::: 40161 ::: * 8320 / java

我的应用程序使用了22222和11007端口,这是关闭的,但即使在调用shutdown脚本后也只有一个udp端口没有被释放。

知道怎么做吗?

3 个答案:

答案 0 :(得分:0)

您可以通过启动tomcat作为服务/守护程序来解决您的问题 服务脚本不允许您启动已启动的服务。

http://www.tldp.org/HOWTO/MMBase-Inst-HOWTO/x321.html

答案 1 :(得分:0)

这很奇怪,Tomcat没有预料到 - 在有人更改某些配置之前 - 它应该顺利运行。

我建议不要深入研究问题,尝试卸载&重新安装Tomcat。如果这不适用于当前版本u r使用 - 尝试+/- 1版本(6.0.x / 8.0.0-RC5)。还要确保没有其他软件/实用程序正在运行导致此问题。

弗雷德里克的选择也值得尝试 - 如果上面没有结果!

答案 2 :(得分:-2)

修改启动脚本,使其不会每次都创建新的tomcat进程。