如何杀死在linux最后催生了后台任务?
例:
doSomething
doAnotherThing
doB &
doC
doD
#kill doB
????
如何杀死在linux最后催生了后台任务?
例:
doSomething
doAnotherThing
doB &
doC
doD
#kill doB
????
有在bash这个特殊的变量:
kill $!
$! 扩展到在后台中执行的最后过程的PID。
您可以通过作业号杀死。 当你把一个任务在后台,你会看到类似这样的:
$ ./script &
[1] 35341
这[1]
是任务数,可以像被引用:
$ kill %1
$ kill %% # Most recent background job
要查看工作号码列表使用jobs
命令。 更多来自man bash
:
有许多方法可以指的是作业的外壳。 字符
%
引入作业名。 作业编号n
可以被称为%n
。 作业还可以被称为使用所使用的名称的前缀来启动它,或者使用显示在其命令行的子字符串。 例如,%ce
是指停止ce
工作。 如果前缀多个作业相匹配,bash报错。 使用%?ce
,在另一方面,是指包含字符串的任何作业ce
在其命令行。 如果子一个以上的工作相匹配,bash报错。 符号%%
和%+
指代当前作业的shell的概念,这是最后一个作业停止,而这是在前台或后台启动。 先前的作业可以使用参考%-
在有关的工作(例如,jobs命令的输出),当前作业总是与标记输出+
,和以前的工作了-
单个%
(无附图作业规范)也指当前作业。
下面的命令为您提供所有的后台进程的列表中您的会话,与PID一起。 然后,您可以用它来杀死进程。
jobs -l
实例:
$ sleep 300 &
$ jobs -l
[1]+ 31139 Running sleep 300 &
$ kill 31139
这应该杀死所有的后台进程:
jobs -p | xargs kill -9
skill doB
skill
是kill命令,让你选择基于给定条件的一个或多个进程的版本。
你需要它的PID ......用“PS -A”找到它。
这是一个不折不扣的话题答案,但是,对于那些有兴趣谁,这也许是有价值的。
正如@约翰Kugelman的回答,%的相关工作规范。 如何有效地找到了吗? 使用更少的与模式的命令 ,好像人少用寻呼机(不是一定),在人的bash型&%然后键入回车只会显示线条,含有“%”,以重新显示所有,类型及。 然后按Enter键。
只需使用killall命令:
killall TASKNAME
获取更多信息和更多高级选项,输入“man killall”。