Karate独立jar v1.3.0的/__admin/stop端点无法终止Mock服务
解决Karate 1.3.0 Mock服务调用/__admin/stop后进程残留的问题
针对你遇到的Karate 1.3.0 Mock服务调用停止端点后仅关闭端口、进程仍残留的问题,可尝试以下几种解决方式:
添加JVM参数强制终止线程
在启动Mock服务的命令中加入-Dkarate.mock.server.stop.wait=0参数,让服务收到停止指令后立即终止所有线程,无需等待默认超时:java -Dkarate.mock.server.stop.wait=0 -jar /opt/karate/karate.jar -m src/test/java/mocks/fs/john.feature -p 80改用POST请求调用停止端点
部分Karate版本中,/__admin/stop端点需要通过POST请求触发才能完全终止进程,而非GET。执行以下命令尝试:curl -X POST http://localhost:80/__admin/stop手动强制终止进程
若上述方法无效,直接通过进程ID强制杀掉残留进程:- 查询Karate进程ID:
ps aux | grep karate.jar - 终止进程:
kill -9 <你的进程ID>
- 查询Karate进程ID:
升级Karate版本
Karate 1.3.0存在Mock服务停止逻辑的已知bug,升级到1.4.0及以上版本可修复该问题,新版本优化了服务停止后的线程清理逻辑。
内容的提问来源于stack exchange,提问作者mattk
相关产品推荐
相关产品推荐

