今天准备在本地部署一下,通过http://localhost:4000/查看博客的状态,突然发现无论怎么刷新、怎么clean再generate都无法通过本地查看,而deploy到git之后却是可以的。自己实在是解决不了,就百度了下,有说是4000的端口被其他进程占用了,有个网友说他的被FoxitProtect进程占用了,我一查我的,的确也有这个进程,看来是上次装福昕阅读器的结果,于是就强制在任务管理器里把它结束了。果然,浏览器那边立刻就刷出来了。
考虑到并不知道4000会被哪个进程占用,我又查了一下如何通过端口号查占用它的进程,以便能结束它,查到一篇博客,这里仔细介绍了如何在命令行下查询端口被哪个进程占用,以及如何查到进程名称和kill它的方法。
Windows平台
使用netstat命令查询PID,然后打开任务管理器,查看对应PID的进程名,结束它。
控制台输入:1
netstat -nao | findstr "4000"
返回:1
2
3TCP 127.0.0.1:4000 0.0.0.0:0 LISTENING 10268
TCP 127.0.0.1:4000 127.0.0.1:64572 TIME_WAIT 0
UDP 127.0.0.1:40000 *:* 2808
这时可以按前述的打开任务管理器,查找PID为10268的进程,并结束它。当然也可以用命令行的方式:1
tasklist | findstr "10268"
返回:1
FoxitProtect.exe 10268 Services 0 11,048 K
显然是FoxitProtect这个进程占用了4000的端口,用如下命令kill它:1
taskkill /pid 10268
然而返回了这个:1
2错误: 无法终止 PID 为 10268 的进程。
原因: 拒绝访问。
查了一番,搞不清楚,还是老老实实在任务管理器里结束吧,反正也找到了PID了。
执行
taskkill的时候可能会出现:
1
2 错误: 无法终止 PID 为 10268 的进程。
原因: 只能强行终止这个进程(带/F选项)。这个时候输入带
/F的命令应该是可以的:
1 taskkill /F /pid 10268返回:
1 成功: 已终止 PID 为 10268 的进程。似乎还有按进程名来结束进程的方法,比如强行结束记事本进程:
1 taskkill /im notepad.exe /f
就这么多。