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

2024-05-11 19:20

本文主要是介绍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

这篇关于Debian12 Linux lsof 查询端口 并杀进程 sh文件编写过程记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/980434

相关文章

Linux磁盘分区、格式化和挂载方式

《Linux磁盘分区、格式化和挂载方式》本文详细介绍了Linux系统中磁盘分区、格式化和挂载的基本操作步骤和命令,包括MBR和GPT分区表的区别、fdisk和gdisk命令的使用、常见的文件系统格式以... 目录一、磁盘分区表分类二、fdisk命令创建分区1、交互式的命令2、分区主分区3、创建扩展分区,然后

Linux中chmod权限设置方式

《Linux中chmod权限设置方式》本文介绍了Linux系统中文件和目录权限的设置方法,包括chmod、chown和chgrp命令的使用,以及权限模式和符号模式的详细说明,通过这些命令,用户可以灵活... 目录设置基本权限命令:chmod1、权限介绍2、chmod命令常见用法和示例3、文件权限详解4、ch

最新版IDEA配置 Tomcat的详细过程

《最新版IDEA配置Tomcat的详细过程》本文介绍如何在IDEA中配置Tomcat服务器,并创建Web项目,首先检查Tomcat是否安装完成,然后在IDEA中创建Web项目并添加Web结构,接着,... 目录配置tomcat第一步,先给项目添加Web结构查看端口号配置tomcat    先检查自己的to

Linux内核之内核裁剪详解

《Linux内核之内核裁剪详解》Linux内核裁剪是通过移除不必要的功能和模块,调整配置参数来优化内核,以满足特定需求,裁剪的方法包括使用配置选项、模块化设计和优化配置参数,图形裁剪工具如makeme... 目录简介一、 裁剪的原因二、裁剪的方法三、图形裁剪工具四、操作说明五、make menuconfig

Linux使用nohup命令在后台运行脚本

《Linux使用nohup命令在后台运行脚本》在Linux或类Unix系统中,后台运行脚本是一项非常实用的技能,尤其适用于需要长时间运行的任务或服务,本文我们来看看如何使用nohup命令在后台... 目录nohup 命令简介基本用法输出重定向& 符号的作用后台进程的特点注意事项实际应用场景长时间运行的任务服

什么是cron? Linux系统下Cron定时任务使用指南

《什么是cron?Linux系统下Cron定时任务使用指南》在日常的Linux系统管理和维护中,定时执行任务是非常常见的需求,你可能需要每天执行备份任务、清理系统日志或运行特定的脚本,而不想每天... 在管理 linux 服务器的过程中,总有一些任务需要我们定期或重复执行。就比如备份任务,通常会选在服务器资

SpringBoot集成SOL链的详细过程

《SpringBoot集成SOL链的详细过程》Solanaj是一个用于与Solana区块链交互的Java库,它为Java开发者提供了一套功能丰富的API,使得在Java环境中可以轻松构建与Solana... 目录一、什么是solanaj?二、Pom依赖三、主要类3.1 RpcClient3.2 Public

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

Servlet中配置和使用过滤器的步骤记录

《Servlet中配置和使用过滤器的步骤记录》:本文主要介绍在Servlet中配置和使用过滤器的方法,包括创建过滤器类、配置过滤器以及在Web应用中使用过滤器等步骤,文中通过代码介绍的非常详细,需... 目录创建过滤器类配置过滤器使用过滤器总结在Servlet中配置和使用过滤器主要包括创建过滤器类、配置过滤

SpringBoot整合kaptcha验证码过程(复制粘贴即可用)

《SpringBoot整合kaptcha验证码过程(复制粘贴即可用)》本文介绍了如何在SpringBoot项目中整合Kaptcha验证码实现,通过配置和编写相应的Controller、工具类以及前端页... 目录SpringBoot整合kaptcha验证码程序目录参考有两种方式在springboot中使用k