Linux 查看端口的占用情况并找出并杀死占用进程的方法

所属分类: 脚本专栏 / linux shell 阅读数: 1936
收藏 0 赞 0 分享

1 lsof查看端口的占用情况

1.1 命令使用示例

# 命令为 lsof -i
[root@onepiece ~]# lsof -i
# 将会显示 命令 + 进程ID + 进程所属用户, 以及监听的协议、状态等信息
COMMAND  PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
dhclient 728 root 6u IPv4 11262  0t0 UDP *:bootpc
ntpd  839 ntp 16u IPv4 13671  0t0 UDP *:ntp
ntpd  839 ntp 18u IPv4 13677  0t0 UDP localhost:ntp

•注意: 若提示无此命令, 则需要安装, 命令如下:

[root@onepiece ~]# lsof -i
-bash: lsof: command not found
[root@onepiece ~]# yum install -y lsof
......
Installed:
 lsof.x86_64 0:4.87-6.el7
Complete!
# 出现上述的 "Complete!",说明安装成功。

1.2 查看某一端口的占用情况

# 比如查看80端口的占用情况,命令为:

[root@onepiece ~]# lsof -i:22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 3187 root 3u IPv4 16278  0t0 TCP *:ssh (LISTEN)
sshd 9528 root 3u IPv4 4436480  0t0 TCP onepiece:ssh->120.253.xx.xx:30214 (ESTABLISHED)

这里显示出22号端口正被sshd所使用, 状态是LISTEN(监听).

1.3 杀死某个端口的所有进程

不建议通过 kill 的方式解决端口冲突问题!

某些极少的情况下是可以直接杀死进程、释放端口的, 比如某个 Tomcat 进程没有成功退出, 导致重启失败.

# 命令如下:
[root@onepiece ~]# killall sshd
# 这样,所有sshd的进程都会被结束掉 —— 我这里通过ssh远程操作阿里云服务器, 杀死之后将退出连接, 提示如下:
Connection to 47.52.xx.xx closed by remote host.
Connection to 47.52.xx.xx closed.
# 此时需要从阿里云控制台通过终端进入, 并开启sshd服务, 命令如下:
service sshd start

这样, 所有与 sshd 的相关进程都会被结束掉 —— 务必慎用.

2 netstat查看端口占用情况

2.1 命令使用示例

# 命令示例如下:
[root@onepiece ~]# netstat -anp | grep 22
tcp  0  0 0.0.0.0:22    0.0.0.0:*    LISTEN  9646/sshd
tcp  0  36 172.31.xx.xx:22  120.253.xx.xx:30307  ESTABLISHED 9649/sshd: root@pts
unix 2  [ ]   DGRAM     15722 476/dbus-daemon
unix 3  [ ]   STREAM  CONNECTED  11122 476/dbus-daemon  

可以看出22端口被9646号进程监听着.

2.2 查看占用某个端口的进程

# 命令为fuser:
[root@onepiece ~]# fuser -v -n tcp 22
      USER  PID ACCESS COMMAND
22/tcp:    root  9646 F.... sshd
      root  9649 F.... sshd

2.3 杀死某个端口的占用进程

[root@onepiece ~]# kill -s 9 9646(进程号)

说明:

-9参数表示告诉操作系统直接杀死进程, 无论进程的状态是否可杀死;
该命令只杀死某个进程, 比 killall 命令相对安全一点.

参考阅读:

Linux中如何解除端口占用

以上所述是小编给大家介绍的Linux 查看端口的占用情况并找出并杀死占用进程的方法 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

更多精彩内容其他人还在看

linux创建用户useradd命令代码示例

本文通过代码示例给大家介绍了adduser与useradd命令二者的关系 以及使用useradd命令添加用户的方法,需要的朋友参考下吧
收藏 0 赞 0 分享

Linux 中LVS NAT 配置步骤的详解

这篇文章主要介绍了Linux 中LVS NAT 配置步骤的详解的相关资料,这里列出详细的实现步骤,需要的朋友可以参考下
收藏 0 赞 0 分享

Linux中的内核链表实例详解

这篇文章主要介绍了Linux中的内核链表实例详解的相关资料,链表中一般都要进行初始化、插入、删除、显示、释放链表,寻找节点这几个操作,需要的朋友可以参考下
收藏 0 赞 0 分享

Shell中特殊字符的用法总结大全

这篇文章主要给大家总结了关于Shell中特殊字符的相关资料,文中包括分好、&、#、!、$、大于号、单双引号等等一系列特殊字符的用法,通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
收藏 0 赞 0 分享

Shell脚步攻略之管道重定向基础

管道是为了解决进程间通信问题而存在,它可以让两个进程之间的数据进行传递,将一个进程的输出数据传递给另一个进程作为其输入数据
收藏 0 赞 0 分享

Linux shell数组循环的实例详解

这篇文章主要介绍了Linux shell数组循环的实例详解的相关资料,这里举例说明如何实现shell数组循环,需要的朋友可以参考下
收藏 0 赞 0 分享

linux shell内置判断语句

内置判断,成功的时候返回0,不成功返回非零。接下来通过本文重点给大家介绍linux shell内置判断语句,感兴趣的的朋友一起看看吧
收藏 0 赞 0 分享

Linux文件的归档和压缩命令

文件归档命令tar,文件归档有好多好处,方便使用易于管理,接下来通过本文给大家分享linux文件的归档和压缩命令,感兴趣的朋友一起看看吧
收藏 0 赞 0 分享

Linux Shell中curl和wget使用代理IP的方法教程

这篇文章主要给大家介绍了关于在Linux Shell中curl和wget使用代理IP的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
收藏 0 赞 0 分享

Linux 日常常用指令及应用小结

最近在学习一些基本的Linux指令,在这里总结一下,在搭环境中常用的一些指令,熟悉这些指令就基本能够使用CentOS进行日常操作了
收藏 0 赞 0 分享
查看更多