如何用一个命令杀死一个进程?


18

在一个步骤中找到ID后,我想杀死一个进程。

我目前使用以下两个命令:

pidof <name>
kill <#number_which_is_result_of_command>

如何编写单个命令来执行此操作?


什么壳?bashtcsh?...?
Levon 2012年

2
您可以在Shell的文档中查找命令替换
deviantkarot 2012年

2
我通过使用xkill在视觉上杀死事物。只需在终端类型xkill,将光标移动到有问题的应用程序,并按下button.Gone

1
@arochester可行,但仅限于GUI环境,kill各种命令都可以从控制台运行(加上可以在脚本等中自动执行)。使人们xkill确信该选项仍然很不错。
Levon 2012年

如果以下答案之一解决了您的问题,请考虑通过单击答案旁边的复选标记接受它。它将为双方奖励一些代表点,并将此问题标记为已解决。
Levon 2012年

Answers:


18

您也可以按名称杀死进程:

例:

pkill vim  # kill all processes containing vim in the process name

@Levon你确定吗?提示:如果您更改pkill为,它会起作用kill吗?
Mikel 2012年

莱文,这是行不通的。kill -9通过其PID终止进程,而pkill -9通过其名称终止进程。
fromnaboo 2012年

6
不使用-o-npkill也会杀死所有匹配的进程,而不仅仅是一个进程。
Mikel 2012年

3
-1表示建议使用SIGKILL(-9),这是不好的过程生态学。使用SIGKILL,不会刷新进程中的数据,从而可能导致数据损坏。
Arcege 2012年

6
建议killall是非常糟糕的建议。根据您所使用的Unix / Linux的不同,它会做非常不同的事情。
MikeyB 2012年

13

要用您的命令集回答您的特定问题,请使用:

kill `pidof <name>`

由于pidof <name>为您提供了您要终止的进程的PID,因此您也可以将其与命令行开关(例如-9etc)一起使用。

已通过bash和测试tcsh


9
BTW kill $(pidof <name>)更兼容(POSIX),可以在另一个命令替换块中使用。
鲁道夫·亚当科维奇

@RudolfAdamkovic我同意,在脚本中肯定是更好的选择。但是对于快速键入的命令,我发现使用反引号更容易..再加上两个常见的shell(bash和tcsh)都可以使用..我无法使该$版本与tcsh一起使用。
Levon 2012年

刚尝试过tcsh,您是对的。不知道 谢谢你的信息!
鲁道夫·亚当科维奇

7

应该是对Levon的评论,但我在这里缺少代表:

在这个问题的公认答案中进行讨论:https ://serverfault.com/questions/397762/how-to-make-folders-00-99-with-a-single-command-in-ubuntu

我想说这可能是更好的选择(或对以后的搜索者至少有用/更清晰)

kill $(pidof <name>)

关于$()与``''的更多参考:http : //mywiki.wooledge.org/BashFAQ/082


+1尤其包括底部链接。我从@RudolfAdamkovic收到了类似的评论,请参阅我对他的回复。您知道与tcsh兼容的版本吗?(我仍然发现反引号更容易在shell中的快速命令上键入:)
Levon

我只使用过bash(在Linux上)和ksh(在HP-UX上);尚未与tcsh交叉,对不起。
Ghillie Dhu 2012年

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.