硬关闭Eclipse后无法启动服务器(tomcat服务器已启动)

胆碱

我正在处理链接到Java项目的大型存储库(在Eclipse上运行),有时(通常在执行文本搜索时),Eclipse停止工作。

如果我以这种状态“硬关闭”它,并且如果我启动了Tomcat,则问题在于它在退出前不会停止tomcat。

当我再次启动Eclipse时,它将显示Tomcat已停止(不是因为当我硬关闭Eclipse时它没有停止tomcat),并且如果我尝试再次启动它,则会出现以下错误:

Tomcat错误

我重新启动它的唯一方法是重新启动计算机。.我承认这有点烦人。

您是否知道是否有办法在Eclipse中停止“幻像”的tomcat服务器,还是每次发生时都必须重新启动计算机?(我的计算机上没有管理员权限,无法使用任务管理器杀死进程)

非常感谢

斯韦特林·扎列夫(Svetlin Zarev)

停止tomcat的标准机制是在关闭端口上发送关闭命令。通常,关闭端口是8005。您可以通过手动发送命令来停止服务器:

  • 在linux上(仅出于完整性考虑): echo "SHUTDOWN" | nc -w 2 127.0.01 8005
  • 在Windows上:
    1. 远程登录127.0.0.1 8005
    2. 类型 SHUTDOWN

如果您无权访问这些命令,则可以使用java编写一个简单的应用程序:

   public static void main(String[] args) throws IOException {
        final InetSocketAddress shutdownAddress = new InetSocketAddress(Inet4Address.getLoopbackAddress(), 8005);
        try (Socket socket = new Socket()) {
            socket.connect(shutdownAddress);

            try (OutputStream out = socket.getOutputStream()) {
                out.write("SHUTDOWN".getBytes(StandardCharsets.US_ASCII));
            }
        }
    }

PS:在Linux上,您还可以发送信号SIG_INT: kill -2 <PID>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章