eclipse - 硬关闭 Eclipse 后无法启动服务器(tomcat 服务器已启动)
问题描述
我处理链接到我的 java 项目(在 Eclipse 上运行)的巨大存储库,有时(当我通常进行文本搜索时),我的 Eclipse 停止工作。
如果我在那种状态下“硬关闭”它并且我启动了我的 Tomcat,那么问题是它在退出之前不会停止 tomcat。
当我再次启动 Eclipse 时,它会告诉我 Tomcat 已停止(这不是因为当我硬关闭 Eclipse 时它没有停止 Tomcat),如果我再次尝试启动它,我会遇到以下错误:
我重新启动它的唯一方法是重新启动我的计算机..我承认这有点烦人..
你知道是否有办法在 Eclipse 中停止我的“幻象运行”tomcat 服务器,还是每次发生这种情况时我都必须重新启动计算机?(我的电脑没有管理员权限,无法使用任务管理器杀死进程)
非常感谢
解决方案
停止 tomcat 的标准机制是在关闭端口上发送关闭命令。通常关闭端口是 8005。您可以通过手动发送命令来停止服务器:
- 在 linux 上(仅出于完整性考虑):
echo "SHUTDOWN" | nc -w 2 127.0.01 8005
- 在窗户上:
- 远程登录 127.0.0.1 8005
- 类型
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>
推荐阅读
- python - Python - 输出不如预期
- javascript - Angular,Ionic:带有 MAP 的 RxJs Pipe 在 Windows 中不返回值,但在与 httpclient 一起使用时在 mac 中工作
- python - Python 的 psycopg2 可以使用受密码保护的客户端证书和密钥吗?
- c# - 如何从 mvc 中的异步方法重定向到页面
- c++ - 我不知道如何从 cpp 中的一个变量同时返回两个值
- python - 具有未知形状的 Dask 数组
- java - 在 java 类中的 oracle sql 和 java 变量之间进行计算
- java - Spring Boot 启动异常
- .net - Windows 10 花费大量时间启动“Choose Just-In-Time”调试器窗口
- mysql - 我试图在centos上重新安装MySQL,现在它没有启动