如何在Linux中杀死一个进程

评论 0 浏览 0 2018-08-30

你有没有遇到过这样的情况:你启动了一个应用程序,而在你使用该应用程序时,它突然变得没有反应,意外地崩溃了?你试图再次启动该应用程序,但什么也没有发生,因为原来的应用程序进程从未真正完全关闭。

好吧,在某些时候,我们所有人都发生过这种情况,不是吗?解决办法是终止或杀死应用程序的进程。但是怎么做呢?

幸运的是,在Linux中,有几个工具可以让你杀死错误的进程。

在这篇文章中,我们将告诉你如何在Linux中使用killkillallpkill命令来终止一个进程。

这些工具之间的主要区别是,kill是根据进程ID号(PID)来终止进程,而killallpkill命令是根据它们的名称和其他属性来终止正在运行的进程。

普通用户可以杀死自己的进程,但不能杀死属于其他用户的进程,而root用户则可以杀死所有的进程。

系统杀伤信号

killkillallpkill向指定的进程或进程组发送一个给定的信号。当没有指定信号时,每个工具会发送15TERM)。

最常使用的信号是:。

  • 1 (-HUP): 重新加载一个进程。
  • 9 (-KILL): 杀死一个进程。
  • 15 (-TERM): 优雅地停止一个进程。

信号可以用三种不同的方式来指定。

  • 用一个数字(如-1)。
  • 带有 "SIG "前缀(例如,-SIGHUP)。
  • 不含 "SIG "前缀(例如,-HUP)。

使用-l选项可以列出所有可用的信号。

kill -l  # or killall -l
kill-a-process-in-linux

下面列出的步骤在所有的Linux发行版上都能使用。

使用kill命令终止进程

要用kill命令终止一个进程,首先需要找到该进程的PID。你可以使用不同的命令,如toppspidofpgrep来完成。

比方说,Firefox浏览器变得没有反应,你需要杀死浏览器进程。要找到进程的ID,使用pidof命令。

pidof firefox

该命令将打印所有的火狐狸进程。

输出

2551 2514 1963 1856 1771

一旦你知道了Firefox进程的PIDs,就可以终止所有的进程,发送 KILL信号。

kill -9 2551 2514 1963 1856 1771

使用killall命令终止进程

killall命令终止了所有与指定名称相匹配的程序。

使用与之前相同的方案,你可以通过输入以下内容来杀死火狐进程。

killall -9 firefox

killall接受几个选项,如向指定用户拥有的进程发送信号,根据正则表达式匹配进程名称,以及创建时间。你可以通过在终端输入killall(不带任何参数)来获得所有选项的列表。

例如,要终止以用户 "sara "身份运行的所有进程,你可以运行以下命令。

sudo killall -u sara

使用pkill命令终止进程

pkill 终止与命令行中给出的模式相匹配的进程。

pkill -9 firefox

进程的名称不一定要完全匹配。

通过pkill,你也可以向某个用户拥有的进程发送信号。要想只杀死用户 "sara "所拥有的firefox进程,你可以输入。

pkill -9 -u sara firefox

总结

使用killkillallpkill命令终止无反应的程序是一项简单的任务。你只需要知道进程名称或PID。

如果你有任何问题或反馈意见,请随时留言。

最后更新2023-10-15
0 个评论
标签