zoukankan      html  css  js  c++  java
  • 一行命令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

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

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

  • 相关阅读:
    28完全背包+扩展欧几里得(包子凑数)
    HDU 3527 SPY
    POJ 3615 Cow Hurdles
    POJ 3620 Avoid The Lakes
    POJ 3036 Honeycomb Walk
    HDU 2352 Verdis Quo
    HDU 2368 Alfredo's Pizza Restaurant
    HDU 2700 Parity
    HDU 3763 CDs
    POJ 3279 Fliptile
  • 原文地址:https://www.cnblogs.com/chenshengkai/p/13565092.html
Copyright © 2011-2022 走看看