我如何杀死最后一个衍生的后台任务在linux?

例子:

doSomething
doAnotherThing
doB &
doC
doD
#kill doB
????

当前回答

下面的命令为您提供会话中所有后台进程的列表,以及pid。然后您可以使用它来终止进程。

jobs -l

使用示例:

$ sleep 300 &
$ jobs -l
[1]+ 31139 Running                 sleep 300 &
$ kill 31139

其他回答

这是一个离题的答案,但是,对于那些感兴趣的人来说,它可能是有价值的。

在@John Kugelman的回答中,%与工作规格有关。 如何有效地找到它?使用less的&pattern命令,似乎man使用less寻呼机(不确定),在man bash中键入&%,然后键入Enter将只显示包含'%'的行,重新显示所有,键入&。然后输入。

skill doB

Skill是kill命令的一个版本,允许您根据给定的标准选择一个或多个进程。

这会杀死所有后台进程:

jobs -p | xargs kill -9

使用killall命令:

killall taskname

更多信息和更高级的选项,键入“man killall”。

你需要它的pid…用"ps -A"找到它。