1、lsof查看端口的占用情况
lsof -i #将会显示命令+进程ID+进程的所属用户,以及监听的协议,状态等信息
[root@y_zilong ~]# lsof -i:22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1388 root 3u IPv4 22901 0t0 TCP *:ssh (LISTEN)
sshd 1388 root 4u IPv6 22903 0t0 TCP *:ssh (LISTEN)
sshd 3205 root 3u IPv4 32873 0t0 TCP node1.example.com:ssh->10.0.0.1:ovtopmd
[root@y_zilong ~]# netstat -tunlp |grep 22
2、netstat查看端口占用情况
netstat -tunlp |grep 端口号 ,用于查看指定端口号的进程,如查看22号端口
-t (tcp) 仅显示tcp相关选项 -u (udp) 仅显示udp相关选项
-n 拒绝显示列名,能显示数字的全部转化为数字
-l 仅显示出在listen(监听)的服务状态
-p 显示潜力相关链接的程序名
[root@y_zilong ~]# netstat -tunlp |grep 22
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 2294/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1388/sshd
tcp6 0 0 :::22 :::* LISTEN 1388/sshd
udp 0 0 192.168.122.1:53 0.0.0.0:* 2294/dnsmasq
udp 0 0 0.0.0.0:67 0.0.0.0:* 2294/dnsmasq
[root@y_zilong ~]# netstat -ntlp |grep 22
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 2294/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1388/sshd
tcp6 0 0 :::22 :::* LISTEN 1388/sshd
[root@y_zilong ~]#
3、杀死某个端口的占用进程
1. kill 进程号:
会给进程发送一个SIGTERM信号,使进程先释放自己资源,然后停止,但是也有程序可能接收信号后,做一些其他的事情(如果程序正在等待IO,可能就不会立马做出响应。
-a 当处理当前进程时,不限制命令名和进程号的对应关系
-p 指定kill 命令只打印相关进程的进程号,而不发送任何信号
-s 指定发送信号
-u 指定用户
-1 :无法关闭进程而让其重读配置文件
-2:中止正在运行的进程;相当于ctrl+c
-9:强制杀死正在运行的进程,可能会导致数据丢失,慎用!
2.kill -9 进程号: 强制杀死进程
示例:强制杀死1388的进程号
[root@y_zilong ~]# netstat -ntlp |grep 22
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 2294/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1388/sshd
tcp6 0 0 :::22 :::* LISTEN 1388/sshd
[root@y_zilong ~]# kill -9 1388
[root@y_zilong ~]# netstat -ntlp |grep 22
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 2294/dnsmasq
[root@y_zilong ~]#