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

问题或需求

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

bash 复制代码
# 查询并提取进程号
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个进程:

shell 复制代码
jps
51056 org.elasticsearch.bootstrap.Elasticsearch
49269 org.elasticsearch.bootstrap.Elasticsearch
52633 Jps
49692 org.elasticsearch.bootstrap.Elasticsearch

执行批量关闭:

shell 复制代码
jps | grep org.elasticsearch.bootstrap.Elasticsearch | awk  '{print $1}' | xargs kill -SIGTERM

成功关闭。

相关推荐
异常君3 分钟前
ZooKeeper ACL 权限模型详解:实现递归权限管理的有效方案
java·spring boot·zookeeper
想躺在地上晒成地瓜干17 分钟前
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
linux·网络·音视频·树莓派·raspberrypi·树莓派教程
开挖掘机上班19 分钟前
shell批量添加新用户
linux·服务器·shell
Cyrus_柯25 分钟前
网络编程(Modbus进阶)
linux·c语言·网络·tcp/ip
brooknew26 分钟前
从中科大镜像获取linux内核5.10.168的git方法
linux·git
眠修43 分钟前
NoSQL 之 Redis 集群
java·redis·nosql
crabdave1231 小时前
解决helm Doris重启后由于root密码修改导致加入集群不成功的问题
linux·运维·服务器
异常君1 小时前
Apache Curator LeaderSelector:构建高可用分布式领导者选举机制
java·zookeeper·面试
Yana.nice1 小时前
nsswitch.conf配置文件内容解析
运维·服务器·网络
cuoluoche1 小时前
【docker n8n】windows环境如何挂载
运维·docker·容器