linux中怎么干掉一个进程

Posted androidstarjack

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux中怎么干掉一个进程相关的知识,希望对你有一定的参考价值。

点击上方 终端研发部,选择 设为星标

每天9:30点,干货准时奉上!

你是否曾经遇到过启动应用程序,而在使用该应用程序时突然变得无响应并意外崩溃的情况?你尝试再次启动该应用程序,但没有任何反应,因为原始应用程序进程从未真正完全关闭。

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

系统kill信号

killkillall可以将给定信号发送到指定的进程或进程组。当没有指定信号时,两个工具都会发送-15(-TERM)。

最常用的信号是:

  • 1(-HUP):重新启动进程。

  • 9 (-KILL):杀死一个进程。

  • 15 (-TERM):正常停止进程。

可以通过三种不同的方式指定信号:

  • 使用带有SIG前缀(例如-SIGHUP)

  • 使用数字(例如-1)

  • 不带SIG前缀(例如-HUP) 。

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

kill -l  # or killall -l

1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX

使用kill命令终止进程

要使用kill命令终止进程,首先需要找到进程PID。你可以使用不同的命令来执行此操作,例如top, ps ,pidofpgrep

假设我们的Firefox浏览器已无法响应,你需要取消Firefox进程。要找到过程PID,请使用pidof命令:

pidof firefox

以上命令将显示所有Firefox进程:

2551 2514 1963 1856 1771

一旦你知道Firefox处理PID以终止所有PID,请输入:

kill -9 2551 2514 1963 1856 1771

使用killall命令终止进程

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

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

killall -9 firefox

killall接受几个选项,例如指定使用用户身份运行的进程,使用正则表达式以及根据创建时间终止进程。你可以通过键入killall(不带任何参数)来获得所有选项的列表。

例如,如果我们要终止以用户身份运行的所有进程rumenz,则可以运行以下命令:

killall -u rumenz

杀死运行时间超过 5h 的进程

killall -o 5h

杀死进行时间小于 4h 的进程

killall -y 4h

默认情况下,killall 命令是大小写敏感的,所以我们如果写错大小写,将无法正确杀死进程。

killall -I nginx

等待直到某个进程被终止,可以使用 -w 选项,其中 w 代表 wait

killall -w

使用pkill命令终止进程

pkill使用正则表达式来匹配进程名称。

ps -eo pid,cmd  | grep ssh
1039 sshd
2257 ssh-agent
6850 ssh
31279 ssh-agent

通过正则批量关闭

pkill '^ssh$'

今日好文推荐

GitHub上非常实用的40个开源JAVA项目

XShell收费太贵?快试试开源的NuShell,好用!

GET 和 POST请求的本质区别是什么?看完觉得自己太无知了...

MyBatis批量插入数据你还在用foreach?你们的服务器没崩?

点个在看少个 bug 👇

以上是关于linux中怎么干掉一个进程的主要内容,如果未能解决你的问题,请参考以下文章

干掉进程:以一种简易友好的方式干掉进程 - Fkill

《现代命令行工具指南》1. 干掉进程:让干掉进程变得简单直接 - Fkill

linux中如何根据PID获得进程?

干掉僵尸进程

linux服务器kill -9干掉服务终极版脚本

第14章:Linux实操篇 进程管理