macOS上杀死进程关闭服务(两种方法),查出被占用的端口或服务 的 PID

开发项目时,经常会碰到启动服务端口冲突的报错。一般会有两种情况,我们知道某个端口被占用,导致冲突,还有一种情况,我们并不知道哪个端口冲突,却知道冲突的服务。比如 Nginx 服务已经启动,再次启动会失败,这时候我们也需要杀死该进程。

端口查看

比如在这里,我知道 8080 端口启动失败,说明它被占用,只要查处 8080 的进程 ID 就行。终端输入

lsof -i:8080

其中 8080 是我要查看的端口,这里可以改成你需要的。

Olivers-MMP:~ guozh$ lsof -i:8080
COMMAND   PID  USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
QQ        283 guozh   23u  IPv4 0x2c143fdd8051bddd      0t0  TCP 192.168.1.101:63009->113.96.13.79:http-alt (ESTABLISHED)
QQ        283 guozh   46u  IPv4 0x2c143fdd8051bddd      0t0  TCP 192.168.1.101:63009->113.96.13.79:http-alt (ESTABLISHED)
java    20774 guozh  116u  IPv6 0x2c143fdd6b892f9d      0t0  TCP *:http-alt (LISTEN)

查出结果如上,很明显,第三行 Java 是我们需要杀死的进程。它的 PID 是 20774。

所以只需要

kill -9 20774

服务名称查看

这种情况是我们不知道该服务的端口,但却知道冲突的服务是什么,比如 Nginx 。需要根据名字查该进程的 PID。

ps -A | grep nginx

是 A 不是 a

然后杀死 11405 进程就行。具体看 macOS 上安装 Nginx,基本命令使用 ,里面提到过。

OK 搞定。

本文由老郭种树原创,转载请注明:https://guozh.net/kill-process-and-service-on-macos/

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注