【问题标题】:Error Shutting down JBOSS关闭 JBOSS 时出错
【发布时间】:2024-01-12 22:01:01
【问题描述】:

我在 Solaris10 上运行 JBOSS 并尝试关闭并重新启动 JBOSS。当我重新启动 JBOSS 时,出现以下错误。
LifecycleException:协议处理程序初始化失败:java.net.BindException:地址已在使用中:33409

我之前遇到过这个问题,曾经使用 lsof 命令杀死与端口 33409 相关的进程 id。不幸的是, lsof 命令在我的 solaris 框中不起作用。是否有任何其他命令可以用来识别与端口号 33409 相关的进程 id 并杀死该进程 id,这样我就可以在没有任何端口冲突的情况下重新启动 JBOSS。

提前致谢

【问题讨论】:

    标签: java jboss solaris port


    【解决方案1】:

    您可以通过以下方式识别正确的流程:

    $ ps -feA | grep "jboss"
    

    这需要一些猜测,但您会掌握窍门的。不过,请确保在杀死它之前识别正确的进程。

    【讨论】:

    • 我试过这个命令,没有出现与 jboss 或 JBOSS 相关的进程。所以我的问题没有解决。
    • 尝试再次运行它,但不要使用“jboss”,而是使用“java”或“jdk”。同样,使用您的最佳判断来确定要终止的正确进程,因为该命令可能会返回多个结果
    • 我再次尝试杀死几乎所有与 java 或 jdk 相关的进程,但再次没有运气。我遇到了同样的错误。
    • 好的,尝试运行netstat -o,它应该会给你一个包含端口和pid的列表
    • Solaris 没有 -o 选项。我可以使用的唯一选项是 > netstat -na | grep 33409 71.44.35.107.33409 . 0 0 49152 0 LISTEN > 此选项不提供进程 ID。你想到的任何其他方式。
    【解决方案2】:

    使用<JAVA_HOME>/bin/jps -lvm 查看所有Java 进程及其主类及其所有参数和JVM 参数。

    jps -lvm | grep 'org.jboss.Main' -- 这就是我通常如何找到任何正在运行的 jboss 进程的 PID。

    【讨论】:

    • 太棒了,这正是我使用的!为我工作!