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.mzph.cn/bicheng/10230.shtml

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

相关文章

Codigger:Vim的革新者,提升开发体验和功能性

深知Vim在编程和文本编辑领域的卓越地位,因此,在设计和开发过程中,Codigger始终将保留Vim的核心功能和高度定制能力作为首要任务。然而,Vim的复杂性和高度定制性也让很多新用户望而却步。为了降低这种使用门槛,Codigge…

Python起风了钢琴曲

写在前面 那年夏天,有《纸短情长》,有《稻香》,有《可不可以》,有《体面》,还有《起风了》……本期小编给大家分享Python弹奏的《起风了》钢琴曲,一起来看看吧! 《起风了》 《起风了》是一首深…

【工具篇】-Powershell

什么是powershell? Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework 的强大功能。本文来介绍一下它的打开方法和常用的命令 什么是“.NET”? 什么是".NET"?htt…

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 提…

09 - 函数调用

---- 整理自狄泰软件唐佐林老师课程 文章目录 1. 函数定义及调用1.1 自定义函数的语法1.2 make 解释器中的预定义函数1.2.1 预定义函数的调用1.2.2 问题1.2.3 本质分析 2. 示例代码 1. 函数定义及调用 makefile 中支持函数的概念 make 解释器提供了一系列的函数供 makefile 调…

资深测试必备技能!TestNG自动化测试框架实战详解

1、TestNG导言 在软件测试工作中,自动测试框架是不可或缺的,之前有Junit和Nunit框架,后有TestNG。TestNG不但吸取了Junit和Nunit框架的思想,而且创造了更强大的功能,它不但是单元测试框架,同时也是集成自动…

Nginx反向代理配置

一、介绍 Nginx 的反向代理功能在现代网络架构中扮演着至关重要的角色。首先,它充当了客户端与后端服务器之间的中介。当客户端发送请求时,这些请求先到达 Nginx 服务器,Nginx 会根据预先设定的规则和配置,将请求准确地转发到相应…

Linux下安装mysql8.0(以rpm包安装)

前言:原文在我的博客网站中,持续更新数通、系统方面的知识,欢迎来访! Linux下安装mysql8.0(以rpm包安装)https://myweb.myskillstree.cn/125.html 目录 1、查操作系统信息 2、下载mysql 8.0.34的rpm包 …

【Anaconda 3 】Jupyter Notebook 的安装配置及使用

Jupyter Notebook 的安装配置及使用 一、引言 Jupyter Notebook 是一种交互式笔记本,它允许用户将代码、注释、方程式、可视化内容等整合到一个文档中,并支持多种编程语言,如 Python、R、Julia 等。它在数据科学、机器学习和教育领域中得到…

Goland GC

Goland GC 引用Go 1.3 mark and sweep 标记法Go 1.5 三色标记法屏障机制插入屏障删除写屏障总结 Go 1.8 混合写屏障(hybrid write barrier)机制总结 引用 https://zhuanlan.zhihu.com/p/675127867 Garbage Collection,缩写为GC,一种内存管理回收的机制…

条件平差——以水准网平差为例 (python详细过程版)

目录 一、原理概述二、案例分析三、代码实现四、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、原理概述 条件平差的函数模型和随机模型为: A V + W = 0

大模型时代,程序员如何卷?

最近在看电影《碟中谍7》,该片讲述了特工伊森亨特尝试与一个被称为智体的全能人工智能作战,其可以即时访问任何在线网络,他和他的团队成员试图找回控制人工智能智体所必需的两部分钥匙并将其摧毁的故事。 在剧中,智体是一个虚拟反…

文旅行业| 某景区导游培养和管理项目成功案例纪实

——整合导游资源并进行统一管理,构建完善的培养与管理机制,发挥景区导游价值 【客户行业】文旅行业;景区;文旅企业 【问题类型】人才培养;人员管理 【客户背景】 南方某5A级景区,作为国内极具代表性和特…

【python】python中的argparse模块,教你如何自定义命令行参数

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

【Pip】pip 安装第三方包异常:[SSL:CERTIFICATE_VERIFY_FAILED]解决方案

pip 安装第三方包异常:[SSL:CERTIFICATE_VERIFY_FAILED] 大家好 我是寸铁👊 总结了一篇pip 安装第三方包异常:[SSL:CERTIFICATE_VERIFY_FAILED]✨ 喜欢的小伙伴可以点点关注 💝 报错 今天在安装第三方包时报错如下: 解决方案 本质上是需要指定信任的镜像…

开启异步线程的方法

1,开启异步线程,在启动类上加注解: 2,自定义线程池: Configuration public class PromotionConfig {Beanpublic Executor generateExchangeCodeExecutor() {ThreadPoolTaskExecutor executor new ThreadPoolTaskExec…

搜维尔科技:【案例分享】Xsens用于工业制造艺术创新设计平台

用户名称:北京理工大学 主要产品:Xsens MVN Awinda惯性动作捕捉系统 在设计与艺术学院的某实验室内,通过Xsens惯性动作捕捉,对人体动作进行捕捉,得到人体三维运动数据,将捕到的数据用于后续应用研究。…

小心电子合同这个坑:手写签名图片

一、引言 在数字化浪潮的推动下,电子合同因其便捷性和高效性受到广泛应用。然而,在使用电子合同的过程中,一个看似简单的签名方式——手写签名图片,却可能带来意想不到的法律风险。本文将详细解析这一陷阱,并为大家提…

PMP证书好考吗?

PMP新考纲还颠覆了自己旧有的五大知识领域,将原来的五大过程组整合成新领域中过程的一部分,提出了新的商业环境、过程、人员三大知识领域。 最关键的是,在新考纲中明确写到: 重要注意事项。通过工作任务分析开展的研究证实&…

PX4FMU和PX4IO最底层启动过程分析(上)

PX4FMU和PX4IO最底层启动过程分析(上) 主处理器和协处理器的固件烧写和运行过程 PX4FMU:各种传感器数据读取、姿态解算、PWM控制量的计算、与PX4IO通信。负责飞控最主要的工作。 PX4IO(STM32F103):为PIXHA…