Debian12 Linux lsof 查询端口 并杀进程 sh文件编写过程记录

目录

一、需求描述

二、需求处理思路

1、根据关键字查询进程号

2、根据端口查询进程号

3、根据进程号杀进程

三、编写shell 脚本

总结


一、需求描述

在linux环境上,已知某个进程的运行关键字以及运行端口,要求根据已知信息查杀对应进程。要求编写shell脚本实现该功能。

二、需求处理思路

linux 上有根据进程关键字以及运行端口查询 对应进程ID的方法以及 杀进程的命令

1、根据关键字查询进程号

如: ps -ef |grep XXX  ,ps 命令可以查询进程情况,一般来说用选项-ef 会更好的查看到信息:

比如查询相同的关键字: 

ps -ef |grep XXX  是以全格式输出的进程信息 是包含了 运行的命令的路径的,内容显示从左到右分别是: 

用户号UID  进程号PID 子进程号PPID  C STIME TTY TIME     运行命令CMD  最后的cmd列是包含了命令具体的路径

而其他ps的参数则不然 :

ps:

 

ps -l 与ps -ef :

2、根据端口查询进程号

Linux 根据进程号查询的命令有:lsof  这个命令可以查看当前系统打开的所有文件 情况   lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。 

一般情况下我们采用参数-i 查询指定端口相关信息: lsof -i:XXX

列信息分别是 : COMMAND   PID进程号  USER用户   FD   TYPE   DEVICE SIZE/OFF NODE NAME 

3、根据进程号杀进程

kill -9 PID   一般用kill -9进行杀进程,参数具体区别参考其他资料。

三、编写shell 脚本

编写脚本的关键点需要考虑:如果有多个进程都有相同的关键字,那么就不能使用 ps -ef 命令来确认进程号,而端口是唯一的,就可以通过查询端口对应的进程号,然后再通过kill -9 PID 来处理进程。

lsof -i:port  得到如下 信息:

输出的是两行信息,我们只需要提取PID对应的数据即可,那么如何提取呢?

通过awk 命令 结合使用:

 lsof -i:8099|grep -v grep |awk 'NR==2{print $2}'

NR==2{print $2}表示就获取 第二列的第二行的内容。 NR==2{。。。。}就表示第二行

print $2表示: 第二列的内容 

如果命令写成:  lsof -i:8099|grep -v grep |awk '{print $2}'  

最简单粗暴的做法:  vi xxx.sh 然后输入如下内容:

#/bin/bash
PID=$(lsof -i:8099|grep -v grep |awk 'NR==2{print $2}')
echo ${PID}
if [ -n "$PID" ]; then
    kill -9 $PID
    echo "kill port 8099 PID success"
fi

然后保存  并给这个sh加上可执行权限,这样就可以查找端口并结束进程了。判断获取到的进程号信息,非空就杀掉

可以通过root 用户加上可执行权限; chmod +x test.sh

总结

关键点:PID=$(lsof -i:8099|grep -v grep |awk 'NR==2{print $2}')  获取到对应的进程号, 然后 判断进程号非空,非空情况进行结束进程    kill -9 $PID

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/688859.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在OpenHarmony设置静态IP?

介绍 本文适用于所有RK3566/RK3568/RK3588平台产品在OpenHarmony系统上设置静态IP。本文以Purple Pi OH开发板为例,在OpenHarmony系统上进行设置。触觉智能的Purple Pi OH鸿蒙开源主板,是华为Laval官方社区主荐的一款鸿蒙开发主板。 该主板主要针对学生…

2. 感知机算法和简单 Python 实现

目录 1. 感知机介绍 1.1 背景 1.2 定义 1.2.1 权重 1.2.2 阈值 1.2.3 偏置 1.3 逻辑处理:与门、非门、或门 2. 感知机实现 2.1 与门的 Python 实现 2.2 非门的 Python 实现 2.3 或门的 Python 实现 1. 感知机介绍 1.1 背景 感知机1957年由 Rosenblatt 提…

Android NDK开发(一)生成指定平台的ndk及根据native接口生成jni接口

为了初步了解Android NDK开发&#xff0c;本文记录了Android Studio使用过程中的部分内容。 本专栏知识点是通过<零声教育>的音视频流媒体高级开发课程进行系统学习&#xff0c;梳理总结后写下文章&#xff0c;对音视频相关内容感兴趣的读者&#xff0c;可以点击观看课程…

MATLAB公式推导和导出Latex格式的方法

最近在推机械臂正逆运动学公式&#xff0c;那个旋转矩阵乘起来是真滴多&#xff0c;手算算的脑浆疼。突然想起来MATLAB还有符号计算这个功能&#xff0c;于是翻了翻手册&#xff0c; 找到了这个利用MATLAB帮助计算公式并且直接导出Latex格式的办法。 先定义符号变量&#xff0…

redis安装与群集

项目需求&#xff1a; 1.安装redis 2.测试redis性能&#xff0c;100个并发连接&#xff0c;100000个请求测试 3.在当前数据库下创建键值对 a11,a22,a33,a44&#xff0c;a55 4.查看键值对 5.将a1改名为a11,将a2删除 5.将a3移动到1号数据库 6搭建redis集群(可选) 测试环境…

软件测试之 接口测试 Postman使用

接口测试 URL HTTP协议 HTTP 请求部分 HTTP响应部分 Postman使用 界面介绍 这里 注意 如果你无法访问 那么 captchaImage这个打错了&#xff0c;给的资料中是错误的地址 https://kdtx-test.itheima.net/api/captchaImage登录接口 科大天下 第一个接口的登录设置 https://kd…

# 电脑突然连接不上网络了,怎么办?

电脑突然连接不上网络了&#xff0c;怎么办&#xff1f; 一、原因分析&#xff1a; 1、IP 地址冲突 2、DNS 解析出现问题。 3、无线网卡驱动损坏。 二、解决方法&#xff1a; 1、修改自动获取 IP 地址为手动设置 IP 地址&#xff1a; 1&#xff09;查看自己电脑自动获取…

掼蛋—开牌三步走

掼蛋是消遣也是一项脑力活动&#xff0c;除了牌运&#xff0c;还要掌握技巧。和大家一起分享一下掼蛋游戏中的“开牌三步走”技巧。 1、快速理牌 目的&#xff1a;潜力最大化 开局时可以快速查看一下自己的同花顺&#xff0c;优先保留不损害其他炸弹的同花顺&#xff0c;并及时…

Paper Digest | 基于原型学习的实体图谱预训练跨域推荐框架

欢迎大家在 GitHub 上 Star 我们&#xff1a; 分布式全链路因果学习系统 OpenASCE: https://github.com/Open-All-Scale-Causal-Engine/OpenASCE 大模型驱动的知识图谱 OpenSPG: https://github.com/OpenSPG/openspg 大规模图学习系统 OpenAGL: https://github.com/TuGraph-…

靠谱的知识竞赛活动公司怎么去找

搞知识竞赛活动&#xff0c;找一家靠谱的知识竞赛活动公司来承办是重中之重&#xff0c;他直接决定了竞赛活动的成败和效果。那么&#xff0c;如何去找这样一家公司呢&#xff1f; 知识竞赛活动一般包括两大部分内容&#xff0c;一部分是舞台及其包装&#xff0c;另一部分是知识…

WT32-ETH01作为TCP Client进行通讯

目录 模块简介WT32-ETH01作为TCP Client设置电脑作为TCP Server设置连接并进行通讯总结 模块简介 WT32-ETH01网关主要功能特点: 采用双核Xtensa⑧32-bit LX6 MCU.集成SPI flash 32Mbit\ SRAM 520KB 支持TCP Server. TCP Client, UDP Server. UDP Client工作模式 支持串口、wif…

【Java】高效解决 非降序数组合并 两种方法

欢迎浏览高耳机的博客 希望我们彼此都有更好的收获 感谢三连支持&#xff01; oj&#xff1a;https://leetcode.cn/problems/merge-sorted-array/submissions/ 合并两个有序数组是个经典问题&#xff0c;它不仅在算法学习中频繁出现&#xff0c;也在实际开发中经常遇到。合并数…