您是否遇到过当您使用该应用程序时,它突然变得无法响应并意外崩溃。当您再次尝试启动该应用程序时,但由没有任何反应,这是因为原来的应用程序进程不会完全关闭,因此无法再次启动该应用

那么怎么解决这种情况,然而我们一般的解决方式都是终止该应用的进程

幸运的是,Linux中有几个实用程序允许我们终止执行错误的进程

此文将向您展示如何使用killkillall 命令在Linux中终止进程。这两个工具之间的主要区别在于killall终止基于名称的运行的进程,而kill终止进程是基于进程ID号(PID)

普通用户可以终止他们自己的进程,但不能终止属于其他用户的进程,而root用户可以终止所有进程

killkillall可以将指定的信号发送到指定的进程或进程组。在没有信号的情况下使用时,两个工具都将发送信号是 -15(-TERM)

最常用的信号是

  • 1 (-HUP):重启进程。
  • 9 (-KILL):终止一个进程。
  • 15 (-TERM):优雅地停止进程

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

  • 使用数字(例如,-1)
  • 带有“SIG”前缀(例如,-SIGHUP)
  • 没有“SIG”前缀(例如,-HUP)

使用该-l选项列出所有可用信号:

kill -l  # or killall -l
HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH POLL PWR SYS

下面列出的步骤适用于所有Linux发行版

使用kill命令杀死进程

为了使用kill命令终止进程,首先我们需要找到进程PID。我们可以通过几个不同的命令,PID可以通过toppspidofpgrep 命令查找

假设我们的Firefox浏览器没有响应,我们需要终止Firefox进程。要查找进程PID,我们可以使用以下pidof命令:

pidof firefox

上面的命令将打印所有Firefox进程:

2551 2514 1963 1856 1771

一旦我们知道Firefox处理PID,我们可以用以下方法终止所有这些:

kill -9 2551 2514 1963 1856 1771

使用killall命令杀死进程

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

使用与之前相同的方案,我们可以通过键入以下命令来终止Firefox进程:

killall -9 firefox

killall命令接受多个选项,例如指定作为用户运行的进程,使用正则表达式并终止指定时间更早或更长的进程。您可以通过键入killall(不带任何参数)获取所有选项的列表。

例如,如果我们想要终止作为用户myfreax运行的所有进程,我们将运行以下命令:

killall -u myfreax

至此你已经学会使用kill和killall工具停止无响应的程序,如有疑问请在下方留言