Linux系统运维命令:终止监听在 TCP端口80上的所有进程(使用lsof,grep,awk组合命令, 终止监听在 TCP某个端口上的所有进程)

目 录

一、需求

二、解决方法

1、解决思路

2、命令

三、实例演示和命令解释

1、实例演示

(1)查看目前有哪些在TCP端口80监听的进程

(2)、使用命令

(3)、查看效果

2、命令解释

[(1)、lsof -i :80](#(1)、lsof -i :80)

[(2)、grep -v "PID"](#(2)、grep -v "PID")

[(3)、awk '{print "kill -9",2}'](#(3)、awk '{print "kill -9",2}')

(4)、sh

四、扩展


一、需求

在Linux系统中,端口80通常用于HTTP服务,如Apache或Nginx等Web服务器。如果某个进程或应用程序意外地占用了这个端口,或者出现了性能问题、安全问题等,管理员可能需要快速终止这些进程以恢复服务的正常运行。

二、解决方法

1、解决思路

通过lsof -i :80命令,可以列出所有正在使用端口80的进程。然后通过grep找到PID,在通过awk调用kill命令,终止掉这些进程。

2、命令

考虑使用lsof 、grep结合awk,形成组合命令,实现需求,如下:

lsof -i :80|grep -v "PID"|awk '{print "kill -9",$2}'|sh

三、实例演示和命令解释

1、实例演示

(1)查看目前有哪些在TCP端口80监听的进程

复制代码
[root@ecs-52a1 nginx_web]#
[root@ecs-52a1 nginx_web]# lsof -i:80
COMMAND       PID   USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
nginx.out 3133592   root    9u  IPv4 634115274      0t0  TCP *:80 (LISTEN)
nginx.out 3133593 nobody    3u  IPv4 634134827      0t0  TCP ecs-52a1:80->122.193.66.67:pcmk-remote (ESTABLISHED)
nginx.out 3133593 nobody    9u  IPv4 634115274      0t0  TCP *:80 (LISTEN)
nginx.out 3133593 nobody   14u  IPv4 634134828      0t0  TCP ecs-52a1:80->122.193.66.67:40831 (ESTABLISHED)
nginx.out 3133593 nobody   15u  IPv4 634139359      0t0  TCP ecs-52a1:80->47.122.26.94:40704 (ESTABLISHED)
[root@ecs-52a1 nginx_web]#

(2)、使用命令

复制代码
[root@ecs-52a1 nginx_web]#
[root@ecs-52a1 nginx_web]# lsof -i:80|grep -v "PID"|awk '{print "kill -9",$2}'|sh
[root@ecs-52a1 nginx_web]#

(3)、查看效果

复制代码
[root@ecs-52a1 nginx_web]#
[root@ecs-52a1 nginx_web]# lsof -i:80
[root@ecs-52a1 nginx_web]#
[root@ecs-52a1 nginx_web]#

可见,所用监听的进程都被删掉了。

2、命令解释

本命令的作用是:查找并终止监听在 TCP 端口 80 上的所有进程。

(1)、lsof -i :80

用于列出当前系统打开的文件。当使用 -i 选项时,它会列出所有网络连接,包括监听的和已建立的。

-i :80 参数意味着我们只对监听在 TCP 端口 80 上的网络连接感兴趣。

(2)、grep -v "PID"

grep 命令用于搜索文本,-v 选项表示反向匹配,即只输出不匹配指定模式的行。

在这里,grep -v "PID" 会过滤掉包含 "PID" 的行。通常,lsof 命令的输出中会包含一列显示进程 ID(PID)的列,但在这个命令组合中,我们不关心 PID,所以我们使用 grep -v "PID" 来移除它。

(3)、awk '{print "kill -9",$2}'

awk 是一个文本处理工具,它可以基于模式对文本进行扫描和处理。

在这个命令中,awk 会处理每一行输入,并输出一个新的字符串。{print "kill -9",$2} 表示对每一行,它都会打印出 "kill -9" 和该行的第二列。

由于 lsof -i 命令的输出中,第二列通常是进程 ID(PID),所以这个命令会生成一系列 kill -9 <PID> 命令,其中 <PID> 是监听在端口 80 上的进程的进程 ID。

kill -9 是一个命令,用于强制终止一个进程。-9 选项发送一个 SIGKILL 信号给进程,这个信号不能被进程捕获或忽略,所以它总是会立即终止进程。

(4)、sh

sh 是 shell 的命令,通常用于执行脚本或命令字符串。

在这里,sh 会执行前面 awk 命令生成的 kill -9 <PID> 命令,从而强制终止所有监听在 TCP 端口 80 上的进程。

四、扩展

在实际使用中,你可稍微做些修改,就可以适合您的应用了。比如,若你想终止掉2680的tcp端口的所用进程,你可以用如下命令即可:

lsof -i:2680|grep -v "PID"|awk '{print "kill -9",$2}'|sh

相关推荐
A小辣椒20 小时前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式