linux - 尽管端口忙于第一个实例,但多个服务实例正在使用 tomcat 开始

标签 linux shell tomcat sh tomcat6

我有一个 shell 脚本来运行我正在使用 Tomcat 6.39 的应用程序。问题是当我运行脚本应用程序启动时,即使该应用程序已经在同一端口上运行。

附言我确实遇到了 port is busy 消息,但在那之后 tomcat 继续加载服务启动包并启动它。

我该如何解决这个问题?

下面是相同的 tomcat 日志:

INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
Mar 22, 2018 7:21:09 PM org.apache.coyote.http11.Http11Protocol init
SEVERE: Error initializing endpoint
java.net.BindException: Address already in use (Bind failed) <null>:9894
        at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:549)
        at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:180)
        at org.apache.catalina.connector.Connector.initialize(Connector.java:1124)
        at org.apache.catalina.core.StandardService.initialize(StandardService.java:703)
        at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:838)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:538)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:562)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.net.BindException: Address already in use (Bind failed)
        at java.net.PlainSocketImpl.socketBind(Native Method)
        at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
        at java.net.ServerSocket.bind(ServerSocket.java:375)
        at java.net.ServerSocket.<init>(ServerSocket.java:237)
        at java.net.ServerSocket.<init>(ServerSocket.java:181)
        at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:50)
        at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:538)
        ... 12 more

Mar 22, 2018 7:21:09 PM org.apache.catalina.core.StandardService initialize
SEVERE: Failed to initialize connector [Connector[HTTP/1.1-9894]]
LifecycleException:  Protocol handler initialization failed: java.net.BindException: Address already in use (Bind failed) <null>:9894
        at org.apache.catalina.connector.Connector.initialize(Connector.java:1126)
        at org.apache.catalina.core.StandardService.initialize(StandardService.java:703)
        at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:838)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:538)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:562)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)


Mar 22, 2018 7:21:09 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 577 ms
Mar 22, 2018 7:21:09 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Mar 22, 2018 7:21:09 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.39
Mar 22, 2018 7:21:09 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor host-manager.xml
Mar 22, 2018 7:21:09 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor manager.xml
Mar 22, 2018 7:21:09 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive rp.war
log4j:WARN No such property [maxFileSize] in org.apache.log4j.DailyRollingFileAppender.
log4j:WARN No such property [maxRollFileCount] in org.apache.log4j.DailyRollingFileAppender.
log4j:WARN No such property [maxRollFileCount] in org.apache.log4j.DailyRollingFileAppender.
log4j:WARN No such property [maxRollFileCount] in org.apache.log4j.DailyRollingFileAppender.
log4j:WARN No such property [maxFileSize] in org.apache.log4j.DailyRollingFileAppender.

最佳答案

这就是 Tomcat 的行为方式,因为无法启动服务器套接字并不是致命的,并且绑定(bind)不会在启动期间首先出现。

不会因为一个端口已经忙于另一个Tomcat而停止启动和退出。何时开始由您决定(当收集到所有条件时:足够的可用内存,足够的磁盘空间用于日志,没有任何东西已经绑定(bind)到令人垂涎的端口上)。

关于linux - 尽管端口忙于第一个实例,但多个服务实例正在使用 tomcat 开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49437012/

相关文章:

linux - Cron 没有为用户运行

c - popen 函数 : Command not found or exited with error status in C program

bash - shell 脚本 : if statement

java - 无法编译 JSP : The type java. util.Map$Entry 的类无法解析。它是从所需的 .class 文件间接引用的

linux - 将 Debian 8 软件包和依赖项安装到指定的 fs 目录

linux - 传输文件的shell脚本

linux - 将 zip 文件与文件夹同步?

Java SecurityManager 防止 .. 目录使用

windows - 与远程 cmd 命令持续集成的解决方案?

linux - Ubuntu 清除内核 Cron