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",

(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

相关推荐
九河云1 小时前
AWS账号注册费用详解:新用户是否需要付费?
服务器·云计算·aws
Lary_Rock2 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
幺零九零零2 小时前
【计算机网络】TCP协议面试常考(一)
服务器·tcp/ip·计算机网络
云飞云共享云桌面3 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
Peter_chq4 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
一坨阿亮5 小时前
Linux 使用中的问题
linux·运维
dsywws6 小时前
Linux学习笔记之vim入门
linux·笔记·学习
幺零九零零7 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
wclass-zhengge7 小时前
Docker篇(Docker Compose)
运维·docker·容器
李启柱7 小时前
项目开发流程规范文档
运维·软件构建·个人开发·设计规范