-->

Linux的:杀后台任务Linux的:杀后台任务(linux: kill background ta

2019-05-12 16:46发布

如何杀死在linux最后催生了后台任务?

例:

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

Answer 1:

有在bash这个特殊的变量:

kill $!

$! 扩展到在后台中执行的最后过程的PID。



Answer 2:

您可以通过作业号杀死。 当你把一个任务在后台,你会看到类似这样的:

$ ./script &
[1] 35341

[1]是任务数,可以像被引用:

$ kill %1
$ kill %%  # Most recent background job

要查看工作号码列表使用jobs命令。 更多来自man bash

有许多方法可以指的是作业的外壳。 字符%引入作业名。 作业编号n可以被称为%n 。 作业还可以被称为使用所使用的名称的前缀来启动它,或者使用显示在其命令行的子字符串。 例如, %ce是指停止ce工作。 如果前缀多个作业相匹配,bash报错。 使用%?ce ,在另一方面,是指包含字符串的任何作业ce在其命令行。 如果子一个以上的工作相匹配,bash报错。 符号%%%+指代当前作业的shell的概念,这是最后一个作业停止,而这是在前台或后台启动。 先前的作业可以使用参考%- 在有关的工作(例如,jobs命令的输出),当前作业总是与标记输出+ ,和以前的工作了- 单个% (无附图作业规范)也指当前作业。



Answer 3:

下面的命令为您提供所有的后台进程的列表中您的会话,与PID一起。 然后,您可以用它来杀死进程。

jobs -l

实例:

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


Answer 4:

这应该杀死所有的后台进程:

jobs -p | xargs kill -9


Answer 5:

skill doB

skill是kill命令,让你选择基于给定条件的一个或多个进程的版本。



Answer 6:

你需要它的PID ......用“PS -A”找到它。



Answer 7:

这是一个不折不扣的话题答案,但是,对于那些有兴趣谁,这也许是有价值的。

正如@约翰Kugelman的回答,%的相关工作规范。 如何有效地找到了吗? 使用更少的与模式的命令 ,好像人少用寻呼机(不是一定),在人的bash型&%然后键入回车只会显示线条,含有“%”,以重新显示所有,类型及。 然后按Enter键。



Answer 8:

只需使用killall命令:

killall TASKNAME

获取更多信息和更多高级选项,输入“man killall”。



文章来源: linux: kill background task