`
king_tt
  • 浏览: 2148133 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Linux kill, killall, kill -9

 
阅读更多

1) 查看进程的方法:

ps -ef 或者 ps aux

root 15087 0.0 0.0 0 0 ? S 23:31 0:00 [kworker/1:1]
root 15219 0.0 0.0 0 0 ? S 23:36 0:00 [kworker/1:0]
root 15460 0.0 0.0 0 0 ? S 23:41 0:00 [kworker/1:2]
homer 15572 23.0 5.8 791472 119788 ? Sl 23:45 0:03 /usr/lib/firefox/firefox
homer 15590 0.1 0.1 273796 3132 ? Sl 23:45 0:00 /usr/lib/at-spi2-core/at-spi-bus-launcher
homer 15620 0.0 0.0 22360 1268 pts/0 R+ 23:45 0:00 ps aux


2) kill -9

kill -s 9 15572

其中,-s 9 制定了传递给进程的信号是9,即强制、尽快终止进程。 15572则是上面ps查到的火狐(firefox)的PID。

简单吧,但有个问题,进程少时ps还无所谓,进程多了,就会觉得痛苦了,无论是ps -ef 还是ps -aux,每次都要在一大串进程信息里面查找到要杀的进程PID,看的眼都花了。

用法详解:

kill -9, 这个强大和危险的命令迫使进程在运行时突然终止,进程在结束后不能自我清理。危害是导致系统资源无法正常释放,一般不推荐使用,除非其他办法都无效。
当使用此命令时,一定要通过ps-ef确认没有剩下任何僵尸进程。只能通过终止父进程来消除僵尸进程。如果僵尸进程被init收养,问题就比较严重了。杀死init进程意味着关闭系统。
如果系统中有僵尸进程,并且其父进程是init,而且僵尸进程占用了大量的系统资源,那么就需要在某个时候重启机器以清除进程表了。


2.1) 改进 1 —— grep

把ps的查询结果通过管道传给grep,查找包含特定字符串的进程。管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。

例如:homer@ubuntu:~$ ps -aux | grep firefox

homer 15572 1.7 5.0 808644 103260 ? Sl 23:45 0:07 /usr/lib/firefox/firefox
homer 15735 0.0 0.0 13584 920 pts/0 S+ 23:52 0:00 grep --color=auto firefox

直接找到firefox进程PID, 输入:kill -s 9 15572


2.2) 改进 2 —— pgrep

pgrep的p表明了这个命令是专门用于进程查询的grep

例如: homer@ubuntu:~$ pgrep firefox
15572


2.3) 改进 3 —— pidof

pidof命令,表示 pid ofxx,字面翻译过来就是 xx的PID

例如:homer@ubuntu:~$ pidof firefox
15572


2.4) 改进4 —— grep + awk

grep firefox 列出firefox进程信息,并awk取第二个field,即PID

例如:homer@ubuntu:~$ ps -ef | grep firefox | grep -v grep | awk '{print $2}'
15572


2.5) 改进 5 —— kill + xargs

杀死进程的方式有以下几种:

a)ps -ef | grep firefox | grep -v grep | awk '{print $2}' | xargs kill -s 9

b)pgrep firefox | xargs kill -s 9

c) pidoffirefox | xargs kill -s 9

d) kill -s 9 `ps -ef | grep firefox | grep -v grep | awk '{print $2}'`

e)kill -s 9 `pgrep firefox`

f)kill -s 9 `pidof firefox`


2.6) 改进 6 —— pkill

pkill 类似于 pgrep, pkill 表示pgrep+kill

例如:pkill firefox


3) killall

killall命令, 杀死同一进程组内的所有进程,其允许指定要终止的进程的名称,而非PID

killall和pkill是相似的,不过如果给出的进程名不完整,killall会报错。pkill或者pgrep只要给出进程名的一部分就可以终止进程。

homer@ubuntu:~$ killall firefo
firefo: no process found
homer@ubuntu:~$ killall firefox
homer@ubuntu:~$ killall -9 firefox


4) kill

杀死进程最安全的方法是单纯使用kill命令,不加修饰符,不带标志。
例如:#kill-pid
注释: 标准的kill命令,默认采用信号(signal)号是15,通常都能达到目的,终止有问题的进程,并把进程的资源释放给系统。然而,如果进程启动了子进程,只杀死父进程,子进程仍在运行,因此仍消耗资源。为了防止这些所谓的“僵尸进程”,应确保在杀死父进程之前,先杀死其所有的子进程。


5) kill -l

例如: kill-lPID

-l 选项, 告诉kill命令用好像启动进程的用户已注销的方式结束进程。当使用该选项时,kill命令也试图杀死所留下的子进程。但这个命令也不是总能成功--或许仍然需要先手工杀死子进程,然后再杀死父进程。


6)kill-HUP

有时候只想简单的停止和重启进程。
例如: #kill-HUPPID
该命令让Linux和缓的执行进程关闭,然后立即重启。在配置应用程序的时候,这个命令很方便,在对配置文件修改后需要重启进程时就可以执行此命令。


附录:各种信号及其用途

Signal Description Signal number on Linux x86
SIGABRT Process aborted 6
SIGALRM Signal raised byalarm 14
SIGBUS Bus error: "access to undefined portion of memory object" 7
SIGCHLD Child process terminated, stopped (or continued*) 17
SIGCONT Continue if stopped 18
SIGFPE Floating point exception: "erroneous arithmetic operation" 8
SIGHUP Hangup 1
SIGILL Illegal instruction 4
SIGINT Interrupt 2
SIGKILL Kill (terminate immediately) 9
SIGPIPE Write to pipe with no one reading 13
SIGQUIT Quit and dump core 3
SIGSEGV Segmentation violation 11
SIGSTOP Stop executing temporarily 19
SIGTERM Termination (request to terminate) 15
SIGTSTP Terminal stop signal 20
SIGTTIN Background process attempting to read from tty ("in") 21
SIGTTOU Background process attempting to write to tty ("out") 22
SIGUSR1 User-defined 1 10
SIGUSR2 User-defined 2 12
SIGPOLL Pollable event 29
SIGPROF Profiling timer expired 27
SIGSYS Badsyscall 31
SIGTRAP Trace/breakpointtrap 5
SIGURG Urgent data available on socket 23
SIGVTALRM Signal raised by timer counting virtual time: "virtual timer expired" 26
SIGXCPU CPU time limit exceeded 24
SIGXFSZ File size limit exceeded 25


grep GlobalHandlerExceptionResolver . -nr --exclude-dir=".svn" --binary-files=without-match


参考推荐:

linux下杀死进程(kill)的N种方法

Linux 杀死进程方法大全(kill,killall)

linux杀掉进程,fuser、kill、pkill命令的运用


附录:各种信号及其用途

Signal Description Signal number on Linux x86
SIGABRT Process aborted 6
SIGALRM Signal raised byalarm 14
SIGBUS Bus error: "access to undefined portion of memory object" 7
SIGCHLD Child process terminated, stopped (or continued*) 17
SIGCONT Continue if stopped 18
SIGFPE Floating point exception: "erroneous arithmetic operation" 8
SIGHUP Hangup 1
SIGILL Illegal instruction 4
SIGINT Interrupt 2
SIGKILL Kill (terminate immediately) 9
SIGPIPE Write to pipe with no one reading 13
SIGQUIT Quit and dump core 3
SIGSEGV Segmentation violation 11
SIGSTOP Stop executing temporarily 19
SIGTERM Termination (request to terminate) 15
SIGTSTP Terminal stop signal 20
SIGTTIN Background process attempting to read from tty ("in") 21
SIGTTOU Background process attempting to write to tty ("out") 22
SIGUSR1 User-defined 1 10
SIGUSR2 User-defined 2 12
SIGPOLL Pollable event 29
SIGPROF Profiling timer expired 27
SIGSYS Badsyscall 31
SIGTRAP Trace/breakpointtrap 5
SIGURG Urgent data available on socket 23
SIGVTALRM Signal raised by timer counting virtual time: "virtual timer expired" 26
SIGXCPU CPU time limit exceeded 24
SIGXFSZ File size limit exceeded 25
分享到:
评论

相关推荐

    linuxkill用法、killall、pkill、xkill.pdf

    kill 命令的使用格式为:kill [信号代码] 进程ID,其中信号代码可以省略,默认为15(TERM 信号),强制终止进程可以使用信号代码-9。 在使用 kill 命令时,需要结合 ps 或 pgrep 命令来获取进程ID。例如,查看 ...

    linuxps命令、kill命令及kill函数概述[借鉴].pdf

    * 强行中止进程:使用 `-9` 选项强行中止进程,例如 `kill -9 324`。 * 解除 Linux 系统的死锁:使用 kill 命令中止有问题的程序,以解除系统死锁。 * 回收内存:使用 kill 命令中止一些“ 越轨” 的程序或很长时间...

    linuxps命令、kill命令及kill函数概述.pdf

    1. 强行中止一个进程:#kill -9 324 2. 解除 Linux 系统的死锁:使用 kill 命令中止有问题的程序。 3. 回收内存:使用 kill 命令中止一些“ 越轨” 的程序或很长时间没有相应的程序,以回收内存。 4. 使用 killall...

    Centos杀死进程kill方法大全.docx

    使用 kill -9 命令可以强制杀死进程。但是,需要注意的是,使用这个命令时,一定要通过 ps -ef 确认没有剩下任何僵尸进程。只能通过终止父进程来消除僵尸进程。如果僵尸进程被 init 收养,问题就比较严重了。杀死 ...

    Linux下使用killall命令终止进程的8大用法实例详解

    Linux 的命令行提供很多命令来杀死进程。这篇文章主要介绍了Linux下使用killall命令终止进程的8大用法,需要的朋友可以参考下

    linux杀死进程方法借鉴.pdf

    kill -9 命令是 Linux 中一种强制杀死进程的命令。其语法为 `kill -9 PID`,其中 PID 是要杀死的进程的进程号。例如,要杀死进程号为 1234 的进程,可以使用以下命令: `kill -9 1234` 使用 kill -9 命令的优点是...

    kill特定进程的shell脚本代码

    1、原始暴力的方法 代码如下:myLinux:/home/zhanhailiang/public_html # killall nginx 2、温柔点的方法查找指定进程的...等价方法: 代码如下:myLinux:/home/zhanhailiang/public_html # kill -9 `ps -ef|grep tcpSe

    Linux中Kill掉进程的10种方法.docx

    除了上述方法外,还有其他方法可以 Kill 掉进程,例如使用 `killall` 命令、使用 `fuser` 命令等。 在 Linux 中,Kill 掉进程是非常重要的操作,需要小心谨慎,避免误杀重要进程。同时,需要了解不同的.kill 方法,...

    7-linux进程管理ppt课件.ppt

    killall 命令可以终止指定程序名的所有进程,格式为 killall -9 程序名。例如,killall -9 vsftpd 可以终止所有对应 vsftpd 程序的进程。 nice 命令可以指定程序运行的优先级,格式为 nice -n command。例如,nice ...

    Linux系统进程管理PPT学习教案.pptx

    + 实例:# kill -9 3、# kill -9 3 5 8。 * killall命令:终止指定程序名的所有进程。 + 格式:killall -9 程序名。 + 实例:# killall -9 vsftpd。 * jobs命令:查看后台作业。 + 格式:jobs。 + 实例:# jobs...

    Linux期末考试题库(超全).docx

    * 在 Red Hat Linux 9 中,默认的用户主目录是 /home。 * 设备名称位于 /dev 目录下。 * ls 命令可以用来列出一个目录下的全部文件。 * cp 命令假定要拷贝的文件在当前目录下。 用户管理 * su 命令可以将一般用户...

    实用linux命令集sss[借鉴].pdf

    * 强制中止一个进程:kill -9 进程号或 killall -9 进程名 * 图形方式中止一个程序:xkill * 查看进程打开的文件:lsof -p * 显示开启文件 abc.txt 的进程:lsof abc.txt * 显示 22 端口现在运行什么程序:lsof -i :...

    入门学习Linux常用必会60个命令实例详解doc/txt

    ◆ 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab; ◆ 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup; ◆ 系统...

    linux全志R16的linux系统编译的资料_20170502_1655.7z

    全志R16平台编译linux系统V1.0.txt 2017/4/11 13:36 (编译请使用编译android的lichee的选项编译生成的.config文件,不然直接编译会报错!!!!) rootroot@cm-System-Product-Name:/home/wwt/linux_r16$ tar...

    Linux系统进程管理PPT课件.pptx

    4. killall命令:终止指定程序名的所有进程,格式:killall -9 程序名。 5. jobs命令:查看后台作业,格式:jobs。 6. fg命令:把后台的作业调入前台运行,格式:fg [作业编号]。 六、实践操作 利用VI手工启动两...

    Linux高级bash编程

    10-9. 在目录的所有文件中查找源字串 10-10. 列出目录中所有的符号连接文件 10-11. 将目录中的符号连接文件名保存到一个文件中 10-12. 一个C风格的for循环 10-13. 在batch mode中使用efax 10-14. 简单的while循环 10...

    linuxswapwarner

    linuxswapwarner 作为Linux用户,您可能必须处理内存限制。 不好的是,如果主内存和交换空间都已满,Linux桌面会突然失去... 函数killOnDemand {echo“ Kill Chrome” killall -9 chrome} 享受鸣谢:bash进度栏取自

Global site tag (gtag.js) - Google Analytics