当前位置: 首页 > news >正文

shell实现查询进程号并批量kill(脚本)

问题或需求描述

在shell中,如果你想通过命令行查询出一系列匹配某个关键词的进程,并使用xargs命令批量结束这些进程,可以按照以下步骤操作:

# 查询并提取进程号
pgrep -f "关键词" | xargs kill# 或者,如果你想使用更强力的kill指令(比如kill -9,即SIGKILL信号,立即结束进程)
pgrep -f "关键词" | xargs kill -9# 如果你想通过进程名而非命令行参数来查找进程,可以去掉-f标志
pgrep "进程名" | xargs kill -9# 如果你要更精确地匹配进程,避免误杀包含关键词的子进程,可以结合grep和awk一起使用,例如:
ps -ef | grep '关键词' | grep -v grep | awk '{print $2}' | xargs kill -9

这里的关键词是你想要匹配的进程的部分或全部名字,pgrep命令可以根据进程名或命令行参数来查找进程。

在这里插入图片描述

实例演示

本地有3个ES的进程,由于是java进程我们直接使用jps查询就可以。

如现有3个进程:

jps
51056 org.elasticsearch.bootstrap.Elasticsearch
49269 org.elasticsearch.bootstrap.Elasticsearch
52633 Jps
49692 org.elasticsearch.bootstrap.Elasticsearch

执行批量关闭:

jps | grep org.elasticsearch.bootstrap.Elasticsearch | awk  '{print $1}' | xargs kill -SIGTERM

结果,全部成功关闭。

附录

pgrep命令介绍

pgrep 是一个在 Linux 系统中广泛使用的命令行工具,它是 procpsprocps-ng 软件包的一部分,通常预装在大多数 Linux 发行版中。pgrep 主要用于查找当前系统中符合条件的正在运行的进程,并输出相应的进程ID(PID)。

命令功能:
pgrep 允许用户根据进程名称、命令行参数、用户名称等多种条件来查找进程。只需提供与进程相关联的模式作为参数,pgrep 就能快速定位到正在运行的对应进程并返回其PID。

基本语法:

pgrep [options] pattern

常用选项:

  • -f:模式字符串不仅匹配进程名,还匹配整个命令行。
  • -l:除了进程ID外,还显示进程的完整命令行。
  • -u:按照拥有进程的用户名称进行匹配。
  • -x:精确匹配整个进程名,而不是部分匹配。
  • -n:只显示最新(最近创建的)的一个匹配进程。
  • -o:如果多个进程匹配,只显示每个进程的一个PID。

例如,如果你想找出名为 nginx 的所有进程,可以直接运行:

pgrep nginx

如果想精确匹配且仅获取一个PID,则可以这样使用:

pgrep -x nginx

由于 pgrep 结合了正则表达式的强大功能,因此在管理和调试系统进程时非常有用,特别是与 pkill 命令结合使用时,能够方便地终止特定的进程。

jps命令简介

jps 是 Java 平台上一个用于查看当前系统中 Java 虚拟机 (JVM) 运行状态的命令行工具,它是 JDK(Java Development Kit)的一部分,通常位于 JAVA_HOME/bin 目录下。在 Linux 和 Unix 系统中,jps 命令主要用于检查哪些 Java 应用程序正在运行及其相关信息。

命令功能:
jps 命令主要用于列出当前系统中所有的 Java 应用程序进程,并显示它们的进程 ID(PID)以及主类(main class)或包含主类的 JAR 文件名。这对于管理大量基于 Java 的服务尤其有用,因为它可以帮助用户迅速识别和定位正在运行的 Java 进程。

基本语法:

jps [options] [hostid]

常用选项:

  • -q:仅显示进程ID,不显示类名或 JAR 名称。
  • -m:显示启动Java应用时传递给main方法的参数。
  • -l:输出主类的完整包名或JAR文件全路径名。
  • -v:显示JVM启动时传递的详细JVM参数。

例如:

  • 列出所有Java进程及其主类名称:

    jps
    
  • 只显示Java进程的PID:

    jps -q
    
  • 显示Java进程的PID以及启动时传递给main方法的参数:

    jps -m
    
http://www.lryc.cn/news/325065.html

相关文章:

  • 【软考】蠕虫病毒
  • 大模型知识点汇总——分布式训练
  • java之网络编程
  • 【Linux】Centos7安装redis
  • 蓝桥杯(2):python基础算法【上】
  • 一个js正则,轻松去除字符串里的\n\t空格
  • 政安晨:【深度学习实践】【使用 TensorFlow 和 Keras 为结构化数据构建和训练神经网络】(四)—— 过拟合和欠拟合
  • RuoYi-Vue若依框架-代码生成器的使用
  • AI PPT生成工具 V1.0.0
  • 进程和线程,线程实现的几种基本方法
  • 【PyTorch】解决PyTorch安装中torch.cuda.is_available()返回False的问题
  • 95% 的公司面临 API 安全问题
  • mysql的基本知识点-排序和分组
  • 使用uniapp 的 plus.sqlite 操作本地数据库报错:::table xxx has no column named xxxx
  • 第十五届蓝桥杯模拟赛 第三期 (C++)
  • Linux中的常用基础操作
  • 【SpringMVC】知识汇总
  • android13实现切换导航模式功能
  • Pycharm服务器配置python解释器并结合内网穿透实现公网远程开发
  • vue3+vite+Electron构建跨平台应用
  • 学习次模函数-第1章 引言
  • 实在数字员工,助力菜鸟智慧物流高效腾飞,领航行业新高度
  • 【from PIL import Image】PIL库和Image的功能及用法
  • 【python从入门到精通】--第一战:安装python
  • MySQL的利用分区功能将数据存储到不同的磁盘
  • KDB+Q | D1 | 学习资源 基础数据类型
  • 中等职业学校大数据课程建设方案
  • .NET 依赖注入和配置系统
  • 什么是”法兰“?
  • Vulnhub靶机:HackLAB_Vulnix