全部博文(2065)
分类: LINUX
2010-01-04 11:31:58
Linux环境查看进程占用情况及杀死进程
[整理:hkebao@126.com 整理时间:
测试环境:
Linux虚拟机
在编写TCP/IP应用程序的时候经常会遇到编写一个SOCKET服务器的时候端口被占用的情况。对于这种情况我们应当如何检查其端口占用情况呢?现在整理一下以供查询
1. 查看某个端口所占进程的进程ID号
netstat -tlnp|grep 3306|awk '{print $7}' |awk -F '/' '{print $1}'
netstat -tlnp|grep 3306 能够方便查看某个端口占用的应用程序的具体信息
2. 查杀
kill -9 $(netstat -tlnp|grep 4484|awk '{print $7}'|awk -F '/' '{print $1}') 直接将占用此端口的应用程序杀掉!
WIN平台查看端口使用情况与查杀
在windows命令行窗口下执行:
C:\>netstat -aon|findstr "80"
TCP 127.0.0.1:80 0.0.0.0:0 LISTENING 2448
看到了吗,端口被进程号为2448的进程占用,继续执行下面命令:
C:\>tasklist|findstr "2448"
thread.exe 2016 Console 0 16,064 K
很清楚吧,thread占用了你的端口,Kill it
当我们用netstat -an的时候,我们有时候可以看到类似的输出:
udp 0 0 0.0.0.0:32768 0.0.0.0:*
但是查找/etc/services又没有这个端口的相关说明,怎么办呢?这个是不是黑客程序?有没有办法查看究竟什么程序监听在这个端口?
使用lsof -i :32768就可以看到:
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
rpc.statd 603 root 4u IPv4 953 UDP *:32768
rpc.statd 603 root 6u IPv4 956 TCP *:32768 (LISTEN)
原来是rpc的程序。
使用lsof -i :port就能看见所指定端口运行的程序,同时还有当前连接。
结论是:lsof -i 命令来处理这样的需求