在服务器端启用服务的时候,可能会报端口号已被占用的错误,如何查看占用此端口号的进程,假设需要查看的端口号为4001。
1.使用lsof指令,示例如下:
lsof -i:4001
[node@VM_0_15_centos ~]$ lsof -i:4001
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 18016 node 11u IPv6 248886763 0t0 TCP *:newoak (LISTEN)
[node@VM_0_15_centos ~]$
或者使用:
netstat -lntp | grep 4001
[node@VM_0_15_centos ~]$ netstat -lntp |grep 4001
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp6 0 0 :::4001 :::* LISTEN 18016/node /data/no
[node@VM_0_15_centos ~]$
均可以看到进程id为18016,此时,可以直接kill掉进程:
kill -9 18016
或者根据返回的进程id,用以下指令
ps -fu 用户名| grep 18016
定位到是哪个程序占用了此进程号,再做决定