netstat显示program name
- 本文链接地址:http://zhubaining.com/blog/2010/01/24/archives/netstat%e6%98%be%e7%a4%baprogram-name
- 作者:zhubaining
$ netstat -anp
tcp 0 0 0.0.0.0:513 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN -
显示不了PID/Program name?因为这是人家的进程,你当然看不了了。
来su成root,果然能看到了:
# netstat
tcp 0 0 0.0.0.0:513 0.0.0.0:* LISTEN 2571/xinetd
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 2571/xinetd
有时候使用root也看不到PID/Program name,这是咋回事?比如:
# netstat
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN -
原来是netstat不够健壮,当socket inode太大的时候就工作不正常了(http://www.makeinstall.cn/index.php/archives/156)。
解决办法:
1. 重启一下服务器,再启动相关服务,就能看到了――这招没有意义
2. 修改netstat源码,去除对socket inode最大值判断的限制;
3. 使用lsof命令来查看监听在某个端口的进程,如: $ /usr/sbin/lsof -i :端口号
那试一下第三招,果然疗效不错:
# /usr/sbin/lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
httpd 960 apache 3u IPv4 3240233587 TCP *:http (LISTEN)
httpd 4159 apache 3u IPv4 3240233587 TCP *:http (LISTEN)
Recent Comments