Linux 批量杀死进程(详细版本)

使用场景

当程序中有使用到多进程且进程数较多的情况,如下图,且需要通过控制台杀死所有的 GSM_run.py 的进程时,利用 kill 命令一个一个的去结束进程是及其耗时且繁琐的,这时就需要我们的kill多进程的命令工作了。

Linux 批量杀死进程(详细版本)

批量 Kill 进程

命令:

ps -ef|grep GSM_run.py|grep -v grep|cut -c 9-15|xargs kill -9

命令说明 :

1、管道符 “|” 用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。

2、” ps -ef” 是 查看所有进程

其中 ps -aux 也是查看所有进程 不过两者右以下区别:

(1) -ef是System V展示风格,而 -aux是BSD风格

​ Unix操作系统在操作风格上主要分为System V和BSD

(2)COMMADN列如果过长, -aux会截断显示,而 -ef不会

(3) -aux可以查看进程的CPU占用率和内存占用率,而 -ef不能

Linux 批量杀死进程(详细版本)

Linux 批量杀死进程(详细版本)

3、 ” grep GSM_run.py” 列出含有关键字”GSM_run.py”的所有进程

4、” grep -v grep“是在列出的进程中去除含有关键字”grep”的进程

5、” cut -c 9-15“是截取输入行的第9个字符到第15个字符,而这正好是进程号PID

某些情况下 9-15 是 不够的 可以 写成 awk ‘{print $2}’ 其 表示 按空格分割取第二个元素,即取进程号 PID。此时完整的命令为 :

ps -ef|grep GSM_run.py|grep -v grep|awk '{print $2}'|xargs kill -9

6、” xargs kill -9” xargs命令把前面命令的输出结果(PID)作为”kill -9″命令的参数,并执行

更简单的办法

pkill
杀死指定名字的所有进程
直接指定进程名字 而无需使用 ps 获得进程PID,十分简单,建议采用

pkill -9 GSM_run.py

但是要注意,当你的进程名字中包含空格时(python train.py),无法使用进程名的全称作为kill 的name,会报错:

Linux 批量杀死进程(详细版本)

且此时不能使用空格后面的部分名称作为kill name(如上图中的 train.py),不然无法kill成功,要使用空格前的名称(如上图中的 python)。

Linux 批量杀死进程(详细版本)

除了批量 kill 同名或部分同名的进程外,还可以kill所有同一指定用户底下的所有进程

pkill -u pc    ## kill pc 用户的所有的用户的进程
pkill -vu root    ## kill 除了 root 用户外的所有的用户的进程

killall
与 pkill 类似,也是可以按照指定的进程名字杀死对应的所有进程

killall -9 GSM_run.py

在运行时可能会报错,说没有 killall 命令:

Linux 批量杀死进程(详细版本)

解决:安装即可

ubuntu系统下:

apt-get install psmisc

centos系统下:

yum install -y psmisc

同样的要注意,当你的进程名字中包含空格时(python train.py),使用空格后的部分名称作为kill name,会报错, 且无法kill进程:

Linux 批量杀死进程(详细版本)

使用进程名的全称(python train.py)作为kill 的name,也会报错,但是对应的进程被kill了,这与pkill不一样,因为其从空格前的部分名称(python)就已经找到对应的进程了,这从其报错信息可以看出端倪:

Linux 批量杀死进程(详细版本)

而使用空格前的名称( python)就不会报错,且能 kill 对应进程

Linux 批量杀死进程(详细版本)

Original: https://www.cnblogs.com/jack-nie-23/p/16448688.html
Author: jacknie23
Title: Linux 批量杀死进程(详细版本)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/582400/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • [Linux]iptables防火墙

    一、iptables介绍 二、表(Table) 三、链(Chain) 四、规则(Rule) 五、iptables规则的增删改查 一、iptables介绍 iptables是一个针对…

    Linux 2023年6月13日
    0111
  • thinkphp5简单使用redis缓存

    csharp;gutter:true; connect("127.0.0.1","6379");</p> <pre>…

    Linux 2023年5月28日
    0116
  • 【windows】在windows右键菜单加入在当前路径打开cmd功能?

    在Ubuntu中可以在一般目录下点击右键选中Open in Terminal即可打开一个命令终端,由于自己平常在windows上开发时也常常使用cmd命令行进行操作,但是每次都需要…

    Linux 2023年6月13日
    0106
  • NoteOfMySQL-11-权限管理

    一、权限系统 MySQL数据库中使用3种不同类型的安全检查:登录验证、授权、访问控制。 二、权限表 MySQL权限表存储在名为mysql的数据库中,常用的表有user、db、tab…

    Linux 2023年6月14日
    081
  • MySQL(一)——查看密码与修改

    查看数据库密码,策略与修改 RPM安装: 源码安装: 进入:数据库 进入数据库后第一步设置密码: 查看密码策略 修改密码策略,长度 0宽容模式 混合模式,0关闭大小写 特殊字符 O…

    Linux 2023年6月13日
    086
  • 聊聊客户档案模型的设计与管理

    可以简单,更需要复杂; 一、基础描述 围绕客户管理通常分为售前、售中、售后、三个核心阶段,即营销、销售、服务三个核心流程与策略,在之前的文章中有聊过CDP系统的设计,本篇从客户档案…

    Linux 2023年6月14日
    087
  • ACL和NAT

    NAT 概述: NAT(网络地址翻译)一个数据包目的ip或者源ip为私网地址, 运营商的设备 无法转发数据。 NAT工作机制: 一个数据包从企业内网去往公网时,路由器将数据包当 中…

    Linux 2023年6月6日
    098
  • CentOS 文件管理

    一、目录管理 1.1、目录结构 1.2、切换目录 1.3、查看目录 1.4、创建目录 1.5、复制目录 1.6、剪切目录 1.7、删除目录 二、文件管理 2.1、查看文件 2.2、…

    Linux 2023年5月27日
    0165
  • NO.6 HTML+CSS 笔记

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    0102
  • 生成随机数的若干种方法

    背景: 创建账户时我们需要配置初始随机密码,使用手机号注册时需要随机验证码,抽奖活动需要随机点名,俄罗斯方块游戏需要随机出形状。这些案例都在说明一个问题,随机数据很重要!而在 Sh…

    Linux 2023年6月6日
    092
  • [云原生]Kubernetes-介绍(第1章)

    一、应用部署方式演变 二、Kubernetes简介 三、Kubernetes组件 四、Kubernetes概念 参考: Kubernetes(K8S) 入门进阶实战完整教程,黑马程…

    Linux 2023年6月13日
    0110
  • 性能瓶颈分析与调优

    对于性能测试,很多时候压力并不能完全到达服务端,在客户端、网络连接端都有可能被阻塞,或者压测的某些特征符合CC和DDoS的行为,触发了防护策略导致压测结果达不到预期。 以下是各节点…

    Linux 2023年6月8日
    0105
  • 世界上最流行的操作系统不是Windows?

    前言 打住,我知道列位是被标题骗进来的,但是这个论题并不是我瞎吹牛,世界上最流行的操作系统还真不是Windows。 提及操作系统,我们印象中比较深刻的无非就是Windows,Lin…

    Linux 2023年6月13日
    0116
  • 实验3: OpenFlow协议分析实战

    实验三: OpenFlow协议分析实战 (一) 基本要求 1.搭建拓扑、IP配置、主机通信 1.1 搭建拓扑 1.2 IP配置 1.3 代码 #!/usr/bin/env pyth…

    Linux 2023年6月7日
    0101
  • 网易互联网笔试(3.27)

    网易互联网3.27日笔试,四道笔试题一道简答题,四道笔试题AK,简答题考察设计模式不会。 第一道题模拟使用单体技能和群体技能攻击怪物的场景、第二题字符串处理、第三题构造具有限制条件…

    Linux 2023年6月13日
    0100
  • JDK8以上提高开发效率

    1 接口的默认方法和静态方法 1.1 接口中可以定义默认方法和静态方法。 默认方法使用default修饰,静态方法和默认方法可以多个; 静态方法通过接口直接调用,默认方法通过接口实…

    Linux 2023年6月13日
    0100
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球