解决端口占用问题:the service exists: false
遇到的问题:chrome服务不能连接,用到chrome服务的脚本都跑不了。
通常重启chrome服务的流程是:
1. powershell cd到服务路径
2. node chrome_service.js uninstall, 使用这句命令先卸载或者叫停止服务
3. node chrome_service.js install,使用这句命令重启服务
我遇到的这个问题是重启服务后,执行使用chrome服务的脚本还是会报错。我是这样解决的:
【1】确定问题出现的原因是什么。
去文件路径下找到服务的error日志,发现报错是
events.js:200
throw er; // Unhandled 'error' event
Error: listen EADDRINUSE: address already in use address:port
。。。。。。
从报错信息可以确定这是端口占用引起的异常。
【2】找到是哪个进程占用了这个端口。
cmd命令窗口输入命令:netstat -ano,查看所有进程,根据报错信息里面的address和port定位是PID,也就是最后一列显示的信息,如下图所示address:port为0.0.0.49667对应的PID是2956。
接着根据PID找到占用端口的进程。输入命令:tasklist|findstr "2956",就会显示进程名称比如svchost.exe,如下图所示。
【3】结束占用端口的进程。
输入命令:taskkill /f /t /im svchost.exe,占用端口的进程就结束了。
最后在power shell输入node chrome_service.js uninstall 和 node chrome_service.js uninstall 就正常重启chrome服务了。
那么怎么判断有重启服务有没有成功呢?我的判断是去文件路径下找到服务的error日志,如果error日志是空的说明重启服务就没再报错,重启也就成功了。
希望我的记录能帮到你。