解决端口占用问题: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。

解决端口占用问题:the service exists: false

接着根据PID找到占用端口的进程。输入命令:tasklist|findstr "2956",就会显示进程名称比如svchost.exe,如下图所示。

解决端口占用问题:the service exists: false

【3】结束占用端口的进程。

输入命令:taskkill /f /t /im svchost.exe,占用端口的进程就结束了。

最后在power shell输入node chrome_service.js uninstall 和 node chrome_service.js uninstall 就正常重启chrome服务了。

那么怎么判断有重启服务有没有成功呢?我的判断是去文件路径下找到服务的error日志,如果error日志是空的说明重启服务就没再报错,重启也就成功了。

希望我的记录能帮到你。