【问题标题】:Killing all the processes bash scripts generated using script names杀死使用脚本名称生成的所有进程 bash 脚本
【发布时间】:2022-01-04 03:57:48
【问题描述】:

如何杀死一个 shell 脚本生成的所有进程? myscript 运行了几次并创建了不需要的进程,我想杀死它们。我正在运行 Ubuntu 20。

123  sh /usr/local/bin/myscript /mnt/local/data_file/data1.txt
312  sh /usr/local/bin/myscript /mnt/local/data_file/data1.txt
452  sh /usr/local/bin/myscript /mnt/local/data_file/data1.txt
455  sh /usr/local/bin/myscript /mnt/local/data_file/data1.txt
1329 sh /usr/local/bin/myscript /mnt/local/data_file/data1.txt

我已经尝试了here 发布的解决方案,但它并没有杀死他们。有人可以帮我找到一种自动查找进程并杀死它们的方法吗?

【问题讨论】:

  • 你是想只做一次(在这种情况下kill 123 312 452 455 1329 应该工作),还是你想自动化进程清理?如果是后者,您到底在运行什么(注意:我推荐 reinierpost 评论中的变体),以及究竟发生了什么(例如,您是否收到任何错误消息等)?
  • 另外,杀死一个父进程将杀死它的所有子进程,除非这些子进程是使用nohup 命令运行的——那些可能是那些“不工作”的?如果是这样,我猜除了递归之外没有简单的答案。

标签: bash process kill


【解决方案1】:

根据提供的详细信息,您可以使用pkill --full 或简单地使用pkill -f 杀死它们:

pkill -f "sh /usr/local/bin/myscript"

可以选择先使用pgrep -f 来查看匹配项。

【讨论】:

    猜你喜欢
    • 2014-08-09
    • 1970-01-01
    • 2016-01-24
    • 2017-03-31
    • 2013-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-04
    相关资源
    最近更新 更多