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

Appium启动报4723端口被占用,杀node进程后仍被新进程占用如何解决

Appium 端口4723被持续占用永久解决方案

问题根因

杀进程后端口立即被新node进程重新占用的核心原因是存在上层守护进程/父进程在管理Appium服务的生命周期,子进程被杀死后会被自动拉起,常见触发场景有2种:

  1. 安装了Appium Desktop桌面版,设置了后台保活、关闭窗口最小化到托盘、开机自启,默认绑定4723端口
  2. 使用pm2、forever等node进程管理工具,将Appium服务配置为了自动重启策略

永久解决方案

按优先级依次尝试以下操作即可:

  • 方案1:定位并终止父进程
    1. 执行lsof -i :4723拿到当前占用端口的node进程PID
    2. 执行ps -ef | grep <PID> 查看进程的PPID(父进程ID)字段
    3. 执行ps -ef | grep <PPID> 确认父进程身份:
      • 如果父进程是pm2/forever:执行pm2 list 查看绑定的Appium任务,执行pm2 delete <任务ID/名称> 移除任务,再执行pm2 unstartup 取消pm2的开机自启
      • 如果父进程是Appium Desktop:打开桌面端设置,关闭「开机自启」「关闭窗口时最小化到后台」选项后完全退出桌面端即可,不需要桌面端的可以直接卸载,仅保留命令行版本
    4. 终止父进程后再执行kill -9 <4723端口对应的PID> 即可彻底释放端口
  • 方案2:修改Appium默认启动端口

    如果不想排查父进程,可以直接更换Appium绑定端口,完全避开4723的占用冲突:
    启动Appium时添加-p参数指定端口即可,比如使用4724端口的启动命令为:

    appium -p 4724
    

    后续所有脚本、测试工具连接Appium服务时,端口同步修改为你指定的端口即可,不会再出现端口占用问题


临时方案优化

当前使用的kill -9 PID | appium 命令存在时序问题,管道两边进程会同时启动,大概率会出现杀进程未完成Appium就启动的情况,优化后的临时命令为:

kill -9 $(lsof -t -i:4723) && appium

该命令会先自动查询4723端口的PID并杀死,等操作完成后再启动Appium,成功率更高。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:15:01