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

例子:

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

当前回答

使用killall命令:

killall taskname

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

其他回答

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

使用killall命令:

killall taskname

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

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

jobs -l

使用示例:

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

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

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

在bash中有一个特殊的变量:

kill $!

美元!扩展为最后一个在后台执行的进程的PID。