• 一行命令kill(杀)掉你的进程


    查看进程

    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

    解析

    ps -ef
    列出进程信息
    grep device.py
    在进程信息中找到需要杀死的进程命令名
    grep -v grep
    在进程信息中剔除带 grep 的信息(也就是剔除 grep 命令的进程,避免误删)
    awk '{print $2}'
    提取字符串行内容的第2个字段,也就是当前示例的进程号
    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 -9 `pgrep process_name_segment`

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

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

    kill -9 $(pgrep process_name_segment)
    作者:Nobita Chen

    -----------------------------------------------

    慢慢的,你总会发现,你的努力没有白费。

  • 相关阅读:
    疯狂学java的第七天
    疯狂学java的第六天
    疯狂学java的第五天
    学java的第四天
    学java的第三天
    javaSE_20_常用API(包装类丶BigInteger类丶BigDecimal类 )
    javaSE_19_常用API(String类丶StringBuffer类)
    javaSE_17_内部类丶常用的引用类型用法总结
    javaSE_15_package和import丶访问控制权限
    javaSE_14_抽象类丶接口
  • 原文地址:https://www.cnblogs.com/chenshengkai/p/13565092.html
Copyright © 2020-2023  润新知