当前位置: 首页>>技术问答>>正文


我如何杀死Ubuntu中的进程?

, , ,

问题描述

我如何终止由我自己的non-root帐户运行的所有进程?

我有一些由我的Windows机器引起的spin smbd进程,所以我远程登录到了linux服务器,并且我想杀死那些旋转进程。我无权重新启动服务或重新启动机器。

最佳解决方案

要杀死所有您有权杀死的进程,只需运行该命令即可

kill -15 -1kill -9 -1,具体取决于所需的行为(详情请使用man kill)

要杀死一个特定的进程,比如说firefox,只需运行

pkill firefoxkillall firefox,具体取决于您想要的行为:‘killall’和’pkill’有什么区别?

如果您想查看正在运行的进程,请使用该命令

ps -ef

如果你想查看用户bob的所有进程,这可能会有所帮助

pgrep -l -u bob

要么

ps -ef | grep bob

次佳解决方案

使用sudo kill <pid>sudo killall <process-name>

第三种解决方案

让我们尝试更多:

sudo apt-get install htop 

top命令是查看系统资源使用情况并查看占用系统资源最多的进程的传统方式。顶部显示进程列表,其中顶部使用最多的CPU。

htop显示与easier-to-understand布局相同的信息。它还允许您使用箭头键选择进程并使用F键执行操作,例如杀死它们或更改它们的优先级。

第四种方案

您可以使用

ps -ax | grep application name 

如果在ps -ax | grep firefox这样的终端上搜索firefox类型,则会显示相应应用程序的进程ID。如果进程ID = 1317,则可以通过kill命令停止该应用程序,

kill -9 1317

第五种方案

我会使用xkill。在终端中输入xkill并点击窗口,或输入xkill和进程ID,它将被终止。

x.org.上找到更多关于xkill的信息

第六种方案

要尝试终止用户username拥有的所有进程,请运行:

pkill -U username

第七种方案

我会把你的问题分成两部分:

1)我如何找到由我开始的流程?运行这个:

ps -u `whoami`

whoami只是在您不知道您使用的帐户名称的情况下,否则只需输入没有反引号的帐户名称即可。

这将列出您的帐户可以删除的所有进程。

2)ps命令将列出进程号,TTY,时间和CMD。进程ID是第一列。使用该数字来杀死进程。杀死这个过程时要小心。如果你杀了错误的过程,你可能会破坏某些东西。要杀死进程,您将使用kill命令,该命令将SIGNAL发送到进程。信号表明过程应该做什么。例如,向进程发送-1将要求它重新加载配置文件;发送-2相当于在该过程中按下Control + C; -9将导致内核放弃进程,而不将其传送给进程。

假设ps -u whoami返回类似的东西

  PID TTY          TIME CMD
 4333 pts/1    00:00:00 fish
 4335 ?        00:00:00 fishd
 4816 ?        00:00:00 intellij
 4868 ?        00:50:42 java
 4939 ?        00:00:19 fsnotifier64
 7667 ?        02:49:08 firefox
 7698 ?        00:00:00 unity-webapps-s

并且您想通过其进程ID杀死firefox进程,那么您应该这样做:

kill -1 7667

然后,你会re-run相同的ps命令,并检查过程是否仍在运行。如果它仍然在运行,那么做一个

kill -2 7667

按照-9的规定行事。

要终止您的帐户启动的所有进程,请输入kill <level> -1。和以前一样:按照-9的方式工作。

如果你知道进程的名称,你可以简单地去killall <processname>,这是你想要杀死的。例如:killall fish(鱼,从这个意义上讲,就是Friendly Interactive SHell)。

killall的文档可以在这里找到:http://manpages.ubuntu.com/manpages/hardy/man1/killall.1.html

第八种方案

… Linux中的所有进程都会响应信号。信号是告诉程序终止或修改其行为的os-level方式。

如何通过PID发送进程信号

将信号传递给程序的最常用方式是使用kill命令。

正如您所预料的那样,此实用程序的默认功能是尝试杀死一个进程:

kill PID_of_target_process

这将TERM信号发送给进程。 TERM信号告诉过程请终止。这允许程序执行clean-up操作并顺利退出。

如果程序行为异常,并且在给定TERM信号时没有退出,我们可以通过传递KILL信号来升级信号:

kill -KILL PID_of_target_process

这是一个不发送给程序的特殊信号。

相反,它被赋予操作系统内核,从而关闭进程。这用于绕过忽略发送给它们的信号的程序…

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/418.html,未经允许,请勿转载。