一般查看一台服务器,为了查看一台机器上运行的端口及监听的服务,常会用到netstat -luntp这个命令。
但是不是每一个运行的进程都能有pid显示,今天就遇到如下情况:
1、通过netstat 中加入一个e得参数查看,启动对应端口的用户。
netstat -letnp|grep 2049
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN 0 109911170 -
tcp6 0 0 :::2049 :::* LISTEN 0 109911174 -
2、通过lsof -i:port 查看出,占用端口中启动的程序。
root@iZ239fkpuw4Z:~# lsof -i:2049
root@iZ239fkpuw4Z:~#
3、另一种可能是,这是一个内核线程,这没有 PID,因为它运行在内核。
# rpcinfo -p localhost
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 45890 status
100024 1 tcp 39339 status
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 2 tcp 2049
100227 3 tcp 2049
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 2 udp 2049
100227 3 udp 2049
100021 1 udp 59559 nlockmgr
100021 3 udp 59559 nlockmgr
100021 4 udp 59559 nlockmgr
100021 1 tcp 56671 nlockmgr
100021 3 tcp 56671 nlockmgr
100021 4 tcp 56671 nlockmgr
100005 1 udp 39406 mountd
100005 1 tcp 38170 mountd
100005 2 udp 55870 mountd
100005 2 tcp 43332 mountd
100005 3 udp 55118 mountd
100005 3 tcp 56334 mountd