【问题标题】:How to kill a shell script and processes it created?如何杀死一个shell脚本和它创建的进程?
【发布时间】:2013-08-01 20:39:46
【问题描述】:

我在 php 中运行一个 shell 脚本(使用 shell_exec)。我想杀死它以及它在运行时创建的所有进程。我知道shell脚本pid。你有什么建议吗? 我正在使用 ubuntu,php 作为 apache 模块。

谢谢。

例子:

#!/bin/bash
echo hello
sleep 20

当我终止我的脚本 (shell_exec("sudo kill -9 $pid")) 时,睡眠进程不会被终止,这是不希望的。

【问题讨论】:

  • 一般来说,杀死 shell 也会杀死它的子进程。否则,请了解进程组。

标签: linux shell ubuntu


【解决方案1】:

使用

pkill -TERM -P pid

会杀死子进程

this answer

【讨论】:

  • 它会杀死进程 pid 及其子进程,但不会杀死孙子或以下进程。
  • anubhava's answer下面可以全部杀掉,也可以在this question看到其他答案,如1,2
【解决方案2】:

改用这个 kill 命令:

kill -- -$pid

杀死正在运行的脚本及其所有衍生的孩子。

【讨论】:

  • 我愿意。 “sudo kill -- -3768”,我得到了“Kill:没有这样的进程”。
  • 你可以先从命令行试试。我已经尝试过你的脚本并且它有效。
猜你喜欢
  • 1970-01-01
  • 2016-07-08
  • 2016-08-23
  • 1970-01-01
  • 2013-03-26
  • 1970-01-01
  • 2012-09-30
  • 2013-11-11
  • 1970-01-01
相关资源
最近更新 更多