linux如何查看端口被谁占用

来源:互联网 发布:软件cmmi 编辑:程序博客网 时间:2024/05/20 09:47
使用 netstat 进行查看!
>netstat -noap | grep 80 | grep tcp
Proto      Recv-Q Send-Q Local Address          Foreign Address             State       PID/Program name                      
-----------------------------------------------------------------------------------------------------------------
tcp    74160 138880 127.0.0.1:6150              127.0.0.1:6150              ESTABLISHED 3145/tnslsnr        unkn-4 (52.04/0/0)
tcp        0      0 :::8009                     :::*                        LISTEN      31550/java          off (0.00/0/0)
tcp        0      0 :::8080                     :::*                        LISTEN      31550/java          off (0.00/0/0)
tcp        0      0 :::80                       :::*                        LISTEN      24675/httpd         off (0.00/0/0)
使用 lsof 进行查看!
然后就可以关闭掉占用该端口的进程。
kill  74160

谁在使用tcp8080端口
>/usr/sbin/lsof -i tcp:8080
COMMAND   PID USER   FD   TYPE   DEVICE SIZE NODE NAME
------------------------------------------------------
java    31550 root  109u  IPv6 78687600       TCP *:webcache (LISTEN)
谁在使用22端口
>/usr/sbin/lsof -i :22
COMMAND  PID USER   FD   TYPE   DEVICE SIZE NODE NAME
sshd    2883 root    3u  IPv6     7642       TCP *:ssh (LISTEN)

>/usr/sbin/lsof -i | grep http
uselib24 15272 apache 4u IPv6 217212 TCP *:http (LISTEN)
uselib24 15272 apache 6u IPv6 217217 TCP *:https (LISTEN)



首先使用ps -ef命令确定要杀死进程的PID,然后输入以下命令: 
# kill -pid 
注释:标准的kill命令通常都能达到目的。终止有问题的进程,并把进程的资源释放给系统。然而,如果进程启动了子进程,只杀死父进程,子进程仍在运行,因此仍消耗资源。为了防止这些所谓的“僵尸进程”,应确保在杀死父进程之前,先杀死其所有的子进程。 
*确定要杀死进程的PID或PPID 
# ps -ef | grep httpd  
结束进程  
# kill -l PID 
-l选项告诉kill命令用好像启动进程的用户已注销的方式结束进程。当使用该选项时,kill命令也试图杀死所留下的子进程。但这个命令也不是总能成功--或许仍然需要先手工杀死子进程,然后再杀死父进程。  
给父进程发送一个TERM信号,试图杀死它和它的子进程。 
# kill -TERM PPID  
*killall命令 
killall命令杀死同一进程组内的所有进程。其允许指定要终止的进程的名称,而非PID。 
# killall httpd  
*停止和重启进程  
有时候只想简单的停止和重启进程。如下: 
# kill -HUP PID 
该命令让Linux和缓的执行进程关闭,然后立即重启。在配置应用程序的时候,这个命令很方便,在对配置文件修改后需要重启进程时就可以执行此命令。
0 0
原创粉丝点击