查看进程

pi@raspberry:~ $ ps -ef | grep python3
UID    PID PPID C STIME TTY    TIME   CMD
pi 4678 4666 0 11:57 pts/1 00:00:00 python3 ./Desktop/device.py
pi 4859 4644 0 11:57 pts/0 00:00:00 grep --color=auto python3
pi@raspberry:~ $

常规操作

pi@raspberry:~ $ kill -9 4678

一行 Code

pi@raspberry:~ $ ps -ef | grep device.py | grep -v grep | awk '{print $2}' | xargs kill -9

解析

  1. ps -ef
    列出进程信息
  2. grep device.py
    在进程信息中找到需要杀死的进程命令名
  3. grep -v grep
    在进程信息中剔除带 grep 的信息(也就是剔除 grep 命令的进程,避免误删)
  4. awk '{print $2}'
    提取字符串行内容的第2个字段,也就是当前示例的进程号
  5. xargs kill -9
    将进程号作为参数传递给kill -9这个命令

总结

依据名字,有效杀死一个进程的方式

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

其中 process_name_segment 是想要杀死的进程名称的片段,实现模糊查找。

注意:有时候在嵌入式 Linux 系统中,打印行的第1个字段即为进程号,上述命令需要改写为 'print $1'

补充1:

敲黑板:使用出发现 awk '{print $2}' 必须是 单引号,不能是双引号!

因为 ' ' 单引号内容代表引入代码块,并对命令行中信息进行解析。

补充2:

更简单的指令 pgrep 可以理解成是 pid grep ,筛选进程号,

因此更简单的写法是:

kill - `pgrep process_name_segment`

这里涉及一个知识点,若想要把其他命令的指令当做参数,可以使用 `执行命令` 反引号包裹起来,或者使用 $(执行命令) 美元符号加括号包裹起来。

于是,上述写法也可以是:

kill - $(pgrep process_name_segment)

一行CMD命令kill(杀)掉你的进程的更多相关文章

  1. 使用 bat cmd命令杀掉 删掉运行的程序

    删掉所有xx.exe开启的进程 taskkill /f /im xx.exe 开启xx.exe start xx.exe 根据标题栏信息删除 taskkill /f /FI "windows ...

  2. Windows Linux的cmd命令查询指定端口占用的进程并关闭

    以端口8080为例: Windows  1.查找对应的端口占用的进程:netstat  -aon|findstr  "8080",找到占用8080端口对应的程序的PID号: 2.根 ...

  3. Windows的cmd命令查询指定端口占用的进程并关闭

    以端口8080为例: 1.查找对应的端口占用的进程:netstat  -aon|findstr  "8080"    ,找到占用8080端口对应的程序的PID号: 2.根据PID号 ...

  4. 封装:Cmd命令调用和常用命令

    原文:封装:Cmd命令调用和常用命令 一.Cmd命令调用方法 1.静态方法调用 class Program { static void Main(string[] args) { // Todo :打 ...

  5. Linux---使用kill杀不掉进程解决方案

    今天打开Linux虚拟机,然后使用jps命令查看,莫名奇妙多了一个1889进程 然后使用kill杀掉后,再运行jps还是存在此进程.于是乎开始大量百度,最终找到了解决方案. 说的很清楚了,杀不掉的原因 ...

  6. cmd命令行结果保存到txt里,屏幕显示一行就保存一行到txt

    #coding:utf-8 """ 1.重定向print 2.python与cmd命令 """ import sys import os i ...

  7. linux一行命令查杀进程

    https://blog.csdn.net/primeprime/article/details/52415273 ps -efww | grep -w 'helloworld' | grep -v ...

  8. Windows cmd命令

    运行操作 CMD命令锦集       1. gpedit.msc-----组策略 2. sndrec32-------录音机 3. Nslookup-------IP地址侦测器 ,是一个监测网络中DN ...

  9. CMD命令大全

    有关某个命令的详细信息,请键入 HELP 命令名 ASSOC 显示或修改文件扩展名关联. AT 计划在计算机上运行的命令和程序. ATTRIB 显示或更改文件属性. BREAK 设置或清除扩展式 CT ...

随机推荐

  1. Codeforces 1142D(dp)

    题目传送 先给出设计dp的结论: dp[i][j]:以第i个位置.以rankj的数拓展出去的方案数.意会一下,我实在想不好语言-- 其中所谓rankj=真·rank%11 找到拓展的规律,转移也就顺理 ...

  2. C++面向对象类的实例题目四

    题目描述: 以面向对象的概念设计一个类,此类包含3个私有数据:unlead.lead(无铅汽油和有铅汽油)以及total(当天总收入,无铅汽油的价格是17元/升,有铅汽油的加个是16元/升),请以构造 ...

  3. SpringMVC_04 拦截器 【拦截器的编程步骤】【session复习?】

    待更新... 2017年5月13日22:45:31 1 什么是拦截器  spring提供的一个特殊组件,前端控制器 DispacherServlet 在收到请求之后,会先调用拦截器,再调用处理器(Co ...

  4. IFC数据模式架构的四个概念层详解说明

    IFC模型体系结构由四个层次构成,从下到上依次是 资源层(Resource Layer).核心层(Core Layer).交互层(Interoperability Layer).领域层(Domain ...

  5. python3-字典中包含字典

    # Auther: Aaron Fan #定义字典及内容av_catalog = { "欧美":{ "www.youporn.com": ["很多免费 ...

  6. Timer的schedule和scheduleAtFixedRate方法的区别解析(转)

    在java中,Timer类主要用于定时性.周期性任务 的触发,这个类中有两个方法比较难理解,那就是schedule和scheduleAtFixedRate方法,在这里就用实例分析一下 (1)sched ...

  7. Zinterstore 命令

    先来看一下这个命令的定义: Redis Zinterstore 命令计算给定的一个或多个有序集的交集,其中给定 key 的数量必须以 numkeys 参数指定,并将该交集(结果集)储存到 destin ...

  8. eclipse workspace 共享设置

    总结一下,复制工作空间配置步骤如下: 1 使用eclipse新建workspace. 2 将新建的workspace下的.metadata\.plugins内容全部删除. 3 将需要拷贝的worksp ...

  9. webapi 返回json

    web api 默认的已 xml 格式返回数据 现在开发一般都是以 json 格式为主 下面配置让 webapi 默认返回 json ,在需要返回 xml 时只需要加一个查询参数 datatype=x ...

  10. 关于Linq对DataTable和List各自的两个集合筛选的相关操作技巧

    项目中用到了对两个集合的帅选等操作,简单总结下 1.Linq操作多个Datable 可以通过AsEnumerable()方法对DataTable进行Linq操作 //获取数据表所有数据 DataTab ...