在Ubuntu中干掉工作


22

这可能是一个经常被问到的问题,但是我一直找不到好的文档。

我的系统上正在运行作业:

foo@fooBox:~/tmp$ jobs
[1]+  Stopped                 foo bar baz

我如何杀死这个过程?我已经尝试了各种命令,例如kill 1,但是没有用。


或者,$ fg [enter] [ctrl-c]:p
bubu

@bubu:不适用于某些可捕获的程序SIGINT,例如vim
Wuffers 2011年

@马克Szymanski的,我知道,我知道:P
布布

Answers:


32

您可以使用@fideli建议的方法,也可以使用如下kill命令:

kill %1

这将杀死第一个暂停的命令。您还可以找到已暂停命令的列表,如下所示:

jobs

它将提供如下输出:

[1]+  Stopped                 yes

如果您有多个停止的作业,则括号([1])中的数字将是作业号,即您%kill命令中提供的编号。


这很棒!了解到有关的新知识kill
fideli 2011年

1
我怎么得到这个-bash: kill: (3593) - Operation not permitted。当我将其与sudo一起使用时,会收到此消息kill: %1: invalid process id
CMCDragonkai 2014年

1
@CMCDragonkai您遇到了这样一种情况,您所运行的命令现在由另一个用户拥有,因为您曾经使用过sudo,所以您无法杀死它,但是kill使用运行sudo意味着您不再有权访问用户的作业列表(尝试跑去sudo jobs看看我的意思)。相反,由于您现在有了PID,只需运行即可sudo kill 3593
morloch 2015年

后台进程如何由另一个用户拥有?
CMCDragonkai 2015年

6

如果您运行ps ax,将获得所有正在运行的进程的列表。查找您要杀死的那个,并在PID列中记下数字。例如说数字是10203,然后运行:

kill 10203

您还可以运行ps ax | grep foo以查找所需的确切程序。最后,您可以运行:

killall foo

杀死的所有实例foo

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.