Relign Blog

Mac环境下关闭指定端口进程

一次Webapck打包进度卡在70%,Ctrl+C退出后,重启Webpack发现一直提示端口被占用.

查看指定端口进程

查找8001端口被哪个进程占用:

1
# lsof -i:8001

结果显示

1
2
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 1577 relign 24u IPv4 0xf4c52151f2395907 0t0 TCP *:vcom-tunnel (LISTEN)

我们可以看到一个node进程占用了8001端口.
输出各列信息的意义如下:

  • COMMAND 进程的名称,也就是启动的程序名
  • PID 进程的ID
  • USER 进程属主的名字
  • FD 文件描述符,应用程序通过文件描述符识别该文件.如CWD,txt
  • TYPE 文件的类型,如DIRREG
  • DEVICE 指定磁盘的名称
  • SIZE 文件的大小
  • NODE 索引节点(文件在磁盘上的标识)
  • NAME 打开文件的确切名称

关闭进程

1
# kill -9 1577

终止一个进程或终止一个正在运行的程序,一般是通过killkillallpkillxkill等进行.比如一个程序已经死掉,但又不能退出,这时就应该考虑应用这些工具.

kill命令

kill命令可通过进程ID(PID)给进程发信号.默认情况下,kill命令会向命令行中列出的全部PID发送一个
TERM信号.遗憾的是你只能用PID而不能用命令名,所以kill命令有时并不好用.

要发送进程信号,你必须是进程的属主或登录为root用户.

1
$ kill 1577

TERM信号告诉进程可能的话就停止运行.不过,如果有不服管教的进程,那它通常会忽略这个请求.如果要强制终止,可以用kill -9 [PID].

killall命令

killall通过程序的名字,直接杀死所有进程.

坚持原创技术分享,您的支持将鼓励我继续创作!