You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JMeter5.4.3执行stoptest.sh后无法运行测试套件如何解决

故障现象

Linux环境运行JMeter 5.4.3版本,执行stoptest.sh脚本后无法启动任何测试套件,运行时抛出错误:

error Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445 on linux

故障根因
  • 4445端口被残留JMeter进程占用:stoptest.sh的工作逻辑是向本地4445端口发送停机指令终止测试,若上次运行的JMeter进程因强杀、OOM崩溃、SSH断连挂起等原因异常退出,会留下僵尸进程持续占用4445端口。新启动的JMeter实例检测到端口被占用后不会直接抛出端口冲突错误,反而会进入等待该端口下发停机/堆转储/线程转储指令的状态,触发上述报错。
  • 运行锁文件残留:JMeter异常退出时没有自动清理运行时生成的锁文件,导致新启动的实例误判已有JMeter实例正在运行,自动进入监听停机指令的状态。
  • 固定端口冲突:若4445端口被系统其他常驻服务占用,JMeter启动时无法绑定该端口用于接收停机指令,也会触发该报错。
排查&解决步骤
  1. 清理残留JMeter进程
    执行命令查询所有存活的JMeter相关进程:
    ps -ef | grep -i jmeter | grep -v grep
    
    拿到所有JMeter进程的PID后,执行强制kill命令清理:
    kill -9 <上一步查到的JMeter进程PID,多个PID用空格分隔>
    
    清理完成后确认4445端口已无进程占用:
    # 适用于安装了net-tools的发行版
    netstat -tulnp | grep 4445
    # 适用于默认带ss工具的新发行版
    ss -tulnp | grep 4445
    
    如果查询结果仍有进程占用4445,直接杀掉对应PID即可。
  2. 清理残留锁文件和临时文件
    进入JMeter安装目录的bin文件夹,清理残留锁文件,同时删除/tmp目录下的JMeter临时文件:
    cd ${JMETER_HOME}/bin
    rm -f *.lck
    rm -rf /tmp/JMeter*
    
  3. 调整监听端口(若4445端口被其他服务占用无法释放)
    打开${JMETER_HOME}/bin/jmeter.properties配置文件,找到非GUI模式监听端口的配置项,修改为未被占用的端口段:
    # 去掉行首注释符,将默认4445端口改为未被占用的端口,例如4455
    jmeterengine.nongui.port=4455
    # 配置端口自动搜索的上限,避免默认端口被占时自动选到冲突端口
    jmeterengine.nongui.maxport=4465
    
    保存配置后重新启动JMeter即可正常运行测试。
  4. 后续使用注意事项
    不要在无JMeter实例运行的状态下反复执行stoptest.sh;终止测试优先使用stoptest.sh的正常停机逻辑,或在JMeter运行控制台按Ctrl+C触发正常退出,尽量不要直接用kill -9强杀JMeter进程,减少进程和文件残留概率。

内容的提问来源于stack exchange,提问作者saanvi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 19:09:21