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

相关推荐
hakesashou4 分钟前
python如何比较字符串
linux·开发语言·python
Ljubim.te12 分钟前
Linux基于CentOS学习【进程状态】【进程优先级】【调度与切换】【进程挂起】【进程饥饿】
linux·学习·centos
cooldream200925 分钟前
Linux性能调优技巧
linux
大G哥26 分钟前
记一次K8S 环境应用nginx stable-alpine 解析内部域名失败排查思路
运维·nginx·云原生·容器·kubernetes
长天一色29 分钟前
【ECMAScript 从入门到进阶教程】第三部分:高级主题(高级函数与范式,元编程,正则表达式,性能优化)
服务器·开发语言·前端·javascript·性能优化·ecmascript
醉颜凉43 分钟前
银河麒麟桌面操作系统修改默认Shell为Bash
运维·服务器·开发语言·bash·kylin·国产化·银河麒麟操作系统
QMCY_jason1 小时前
Ubuntu 安装RUST
linux·ubuntu·rust
慕雪华年1 小时前
【WSL】wsl中ubuntu无法通过useradd添加用户
linux·ubuntu·elasticsearch
苦逼IT运维1 小时前
YUM 源与 APT 源的详解及使用指南
linux·运维·ubuntu·centos·devops
前端张三1 小时前
Mac 电脑pink 后端ip地址进行本地联调
服务器·tcp/ip·macos