用途

用于终止进程

用法

kill [-s signal|-p] [--] pid...
kill -l [signal]

说明

1.默认发送信号15(请求终止进程,程序可以捕获,操作系统会杀死没有对此做处理的进程),如果需要强制杀死进程,需要传信号9,此信号不能被进程捕获,杀死进程一般传信号15

2.杀死进程可能会丢失数据,需要谨慎操作

3.信号可以传名字也可以是数字,信号可以通过-N方式指定

4.这里所说的kill是指操作系统的kill命令,不是只shell内置的kill命令,一般情况下使用语法都差不多,shell命令会兼容

常用参数

-s signal

指定需要发送的信号,可以是数字也可以是名字

-l [signal name]

列出支持的信号列表,如果后面跟上信号名会显示对应的信号数字

-a

杀死所有匹配的进程,不限制是否和当前的进程uid是否一样

-p

只输出进程号,不发送指定的信号

实践

1.强制删除指定的进程

[root@vm ~]# ps aux | grep t.php
root 31076 99.4 0.4 237040 13240 pts/1 R+ 15:32 7:30 /u01/server/php/bin/php.bin t.php
root 32340 0.0 0.0 103324 916 pts/2 S+ 15:39 0:00 grep t.php
[root@vm ~]# kill -s 9 31076

2.显示信号列表

[root@vm ~]# kill -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

3.杀死指定命令名的进程

shell内置的kill命令不支持,只能使用系统kill命令

[root@vm ~]# ps aux | grep t.php
root 1466 95.1 0.4 237040 13240 pts/1 R+ 15:47 0:44 /u01/server/php/bin/php.bin t.php
root 1482 95.7 0.4 237040 13244 pts/2 R+ 15:47 0:38 /u01/server/php/bin/php.bin t.php
root 1631 0.0 0.0 103328 928 pts/3 S+ 15:48 0:00 grep t.php
[root@vm ~]# /bin/kill php.bin
[root@vm ~]# ps aux | grep t.php
root 1659 0.0 0.0 103324 900 pts/3 R+ 15:48 0:00 grep t.php

4.杀死多个进程

[root@vm ~]# ps aux | grep t.php
root 1782 98.0 0.4 237040 13240 pts/1 R+ 15:49 0:44 /u01/server/php/bin/php.bin t.php
root 1792 90.6 0.4 237040 13240 pts/2 R+ 15:49 0:38 /u01/server/php/bin/php.bin t.php
root 1960 0.0 0.0 103324 904 pts/3 S+ 15:50 0:00 grep t.php
[root@vm ~]# kill 1782 1792
[root@vm ~]# ps aux | grep t.php
root 2024 0.0 0.0 103324 900 pts/3 S+ 15:50 0:00 grep t.php

5.不杀死进程,只显示进程号

[root@vm ~]# ps aux | grep t.php
root 2523 94.0 0.4 237040 13244 pts/1 R+ 15:53 0:15 /u01/server/php/bin/php.bin t.php
root 2535 92.3 0.4 237040 13240 pts/2 R+ 15:53 0:12 /u01/server/php/bin/php.bin t.php
root 2560 0.0 0.0 103324 900 pts/3 S+ 15:53 0:00 grep t.php
[root@vm ~]# /bin/kill -p php.bin
2523
2535

参考资料

【1】man kill

【2】每天一个linux命令(42):kill命令

http://www.cnblogs.com/peida/archive/2012/12/20/2825837.html

【3】各种信号及其用途-见最后面的附件

http://blog.csdn.net/andy572633/article/details/7211546

【4】列出所有的 Bash Shell 内置命令

http://blog.csdn.net/imxiangzi/article/details/50377904

【5】bash内置命令

http://www.cnblogs.com/blue-sea-sky/p/5506312.html

【6】Linux 进程状态

http://www.cnblogs.com/itech/p/3208261.html

【7】Linux进程间通信

http://www.cnblogs.com/linshui91/archive/2010/09/29/1838770.html

N天学习一个linux命令之kill的更多相关文章

  1. N天学习一个Linux命令之帮助命令:man

    前言 工作中每天都在使用常用的命令和非常用的命令,忘记了用法或者参数,都会bing一下,然后如此循环.一直没有真正的系统的深入的去了解命令的用法,我决定打破它.以前看到有人,每天学习一个linux命令 ...

  2. N天学习一个Linux命令之free

    用途 查看系统内存(物理/虚拟/缓存/共享)使用情况 用法 free [-b | -k | -m | -g | -h] [-o] [-s delay ] [-c count ] [-a] [-t] [ ...

  3. N天学习一个linux命令之ping

    用途 检测主机是否可到达,也就是说,目标主机是否可以联网,还可以用于检测网速.通过发送ICMP ECHO_REQUEST数据包检测. 用法 ping [options] destination 常用选 ...

  4. N天学习一个linux命令之du

    用途 统计文件或者目录占用硬盘空间大小 用法 du [OPTION] [FILE]du [OPTION] --files0-from=F 常用参数 -a, --all统计所有文件,不仅仅是目录 -b, ...

  5. N天学习一个linux命令之scp

    用途 通过ssh通道,不同主机之间复制文件 用法 scp [options] [user@host:]file1 [user2@host2:]file2 常用参数 -1使用 ssh 1协议 -2使用s ...

  6. 每天学习一个Linux命令-目录

    在工作中总会零零散散使用到各种Linux命令,从今天开始详细的学习一下linux常用命令,坚持每天一个命令,学习的主要参考资料为: 1.竹子-博客(https://www.cnblogs.com/pe ...

  7. N天学习一个linux命令之umask

    前言 umask不是linux命令,而是shell内置的指令,俗称用户权限掩码,用于对用户创建的文件和目录设置默认权限.默认的权限掩码是0022,也就是说新创建的文件权限是0644,新创建的目录权限是 ...

  8. N天学习一个Linux命令之top

    用途 查看机器负载以及进程资源占用情况,linux系统性能分析工具 用法 top -hv | -abcHimMsS -d delay -n iterations -p pid [, pid ...] ...

  9. N天学习一个linux命令之ip

    用途 show / manipulate routing, devices, policy routing and tunnels 用法 通用格式 ip [ OPTIONS ] OBJECT { CO ...

随机推荐

  1. null, undefined,"",0,false是什么关系?

    null本质上和0,"",false是一类东西,它们都表示一种数据类型的非值.正如0表示数字类型的非值,""表示字符类型的非值一样,null表示完全空的对象,即 ...

  2. mysql多表查询 查询排序

    有 ask 问题表  和 answer回答表  回答表中的ask_id和 ask表中的id对应 1.查询 /*查询回答了的 */select a.id,a.title,count(b.ask_id) ...

  3. [转]自适应网页设计(Responsive Web Design)

    本文转自:http://www.ruanyifeng.com/blog/2012/05/responsive_web_design.html 作者: 阮一峰 日期: 2012年5月 1日 随着3G的普 ...

  4. Spring Cloud (14) 服务网关-过滤器

    Spring Cloud Zuul作为网关所具备的最基本的功能:路由,还具备另外一个核心的功能:过滤器. 过滤器 通过Spring Cloud Zuul实现的路由功能,我们的微服务可以通过统一的API ...

  5. 笨拙而诡异的 Oracle

    有这样一段 SQL 代码: 通过 C# 获取查询结果:    SQL 代码中有两个参数,且都是字符串类型,以上的 C# 代码是生成 Oracle SQL 代码所需要的参数.运行结果如下:   居然发生 ...

  6. Java 中 父类变量访问子类方法 需要使用 类型转换 (instenceof)关键字 /类型判断/

    通过数组元素访问方法的时候只能访问在 Animal中定义的方法,对 于 Tiger类和  Fish中定义的方法时却不能调用,例如语句  animal[2].swim();就是不正确的.当 需要访问这些 ...

  7. Objective-C——Runtime理解

    动态语言 OC是一门不折不扣的动态语言,所以它的很多机制都是动态运行时决定的.这点和C语言不一样,C语言是静态绑定,也就是编译后所有的一切都已经决定了.这一点和C语言的函数指针有些类似,很多时候函数指 ...

  8. Jquery 多行拖拽图片排序 jq优化

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. Leetcode0006--ZigZag Conversion

    [转载请注明]https://www.cnblogs.com/igoslly/p/9017638.html 来看一下题目: The string "PAYPALISHIRING" ...

  10. Ubuntu16安装jdk8配置Tomcat9

    一.配置jdk 1.下载解压是肯定不能少的 2.配置环境变量根据自己需求来 export JAVA_HOME=/usr/software/jdk1.8.0_121 export CLASSPATH=. ...