AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 676258
Accepted
a6623
a6623
Asked: 2021-11-05 19:55:16 +0800 CST2021-11-05 19:55:16 +0800 CST 2021-11-05 19:55:16 +0800 CST

杀死我在过去一小时内启动的所有进程?

  • 772

如何使用我的用户名杀死在(过去一小时,过去一天)等内启动的所有进程?

command-line process-management
  • 1 1 个回答
  • 350 Views

1 个回答

  • Voted
  1. Best Answer
    Ярослав Рахматуллин
    2021-11-06T04:01:01+08:002021-11-06T04:01:01+08:00
    1. 查找不到一小时的进程
    2. 提取pid
    3. 杀死 pids

    工艺清单:

    $ ps -e -o pid,user,etimes,comm \
        | awk -v me=$USER '$2 == me && $3 <= 3600 { print }'
    

    生产

     661162 jaroslav    3006 chrome
     667859 jaroslav    1711 chrome
     669145 jaroslav    1471 chrome
     671222 jaroslav    1016 chrome
     675278 jaroslav     270 chrome
     675578 jaroslav     207 sleep
     676094 jaroslav      91 chrome
     676102 jaroslav      91 chrome
     676528 jaroslav      11 chrome
     676529 jaroslav      11 chrome
     676553 jaroslav      11 chrome
     676602 jaroslav       3 top
     676615 jaroslav       0 ps
     676616 jaroslav       0 awk
    

    提取pid:

    $ ps -e -o pid,user,etimes,comm \
        | awk -v me=$USER '$2 == me && $3 <= 3600 { print $1 }'
    

    杀死pid:

     $ ps -e -o pid,user,etimes,comm \
        | awk -v me=$USER '$2 == me && $3 <= 3600 { print $1 }' \
        | xargs -rt kill
    

    xargs 的 -tr 参数是可选的,如果没有输出,将跳过 xargs 并报告每个执行的行。

    您甚至可以对其进行测试,kill -0它不会停止进程,但如果进程不再运行,则会报告错误。

    $ ps -e -o pid,user,etimes,comm \
        | awk -v me=$USER '$2 == me  && $3 <= 3600 { print $1 }' \
        | xargs -rt kill -0 
    kill -0 661162 667859 669145 671222 675278 676602 677310 677311 677883 677893 677965 677966 677967 677968
    kill: (677966): No such process
    kill: (677967): No such process
    

    意识到这个管道/脚本可以在反馈后杀死自己,(注意上面进程列表中的 etimes=0),这是一个忽略最近进程的修订版本:

    ps -u "$LOGNAME" -o pid,etimes,comm \
      | awk '$2 <= 3600 && $2 > 1 { print $1 }' \
      | xargs -rt kill -0
    

    这可能不是很便携,但应该可以在 Linux 上运行(至少 ubuntu 18)。希望这能让您对如何解决这个问题有所了解。

    <mother-mode> 不要在没有 awk 和 xargs 的情况下运行 ps 命令,并首先杀死以查看将被杀死的内容,如果以 root 身份运行,请小心。您可能会关闭系统或杀死最近重新启动的一些重要服务。 </mother-mode>

    • 3

相关问题

  • ip 命令是否支持通配符?

  • 需要许多参数的实用程序的推荐界面是什么?[关闭]

  • 远程运行 X 应用程序,在远程主机上运行 GUI [关闭]

  • 使 mysql CLI 以交互方式向我询问密码

  • 没有服务器的命令行 pub/sub?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve