用途

用于终止进程

用法

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. akka设计模式系列-慎用ask

    慎用ask应该是Akka设计的一个准则,很多时候我们应该禁用ask.之所以单独把ask拎出来作为一篇博文,主要是akka的初学者往往对ask的使用比较疑惑. "Using ask will ...

  2. 最少拦截系统------LCS--------动态规划

    这是一道极好的题,会了这个应该说 最长递增子序列什么的  就有了另外一种思路了 下面附上代码---应该仔细的看一下  那个  if判断 #include<stdio.h> #include ...

  3. nginx入门学习

    1.yum解决编译nginx所需的依赖包,之后你的nginx就不会报错了 yum install gcc patch libffi-devel python-devel zlib-devel bzip ...

  4. Coursera公开课-Machine_learing:编程作业4

    编程作业: Neural Network Learning 源码上传到gitlab. 对于神经网络的理解也都在源码注释里面了,感兴趣可以看看.

  5. 【Leetcode】84. Largest Rectangle in Histogram 85. Maximal Rectangle

    问题描述: 84:直方图最大面积. 85:0,1矩阵最大全1子矩阵面积. 问题分析: 对于84,如果高度递增的话,那么OK没有问题,不断添加到栈里,最后一起算面积(当然,面积等于高度h * disPo ...

  6. Kafka的3节点集群详细启动步骤(Zookeeper是外装)

    首先,声明,kafka集群是搭建在hadoop1.hadoop2和hadoop3机器上. kafka_2.10-0.8.1.1.tgz的1或3节点集群的下载.安装和配置(图文详细教程)绝对干货 如下分 ...

  7. Spark RDD/Core 编程 API入门系列之简单移动互联网数据(五)

    通过对移动互联网数据的分析,了解移动终端在互联网上的行为以及各个应用在互联网上的发展情况等信息. 具体包括对不同的应用使用情况的统计.移动互联网上的日常活跃用户(DAU)和月活跃用户(MAU)的统计, ...

  8. Eclipse中搭建Apache Tomcat7源码调试环境

    第一步:获取Apache Tomcat7源码,读者可以从Apache 官方网站获取,官方下载地址: http://tomcat.apache.org/download-70.cgi 注意选择Sourc ...

  9. Android fragment-findFragmentByTag 始终返回 null

    我曾四处看看,在我的案子中找到几个与类似的主题,但没有帮助的问题.我想访问现有活动片段使用getSupportFragmentManager().findFragmentByTag(TAG),但它始终 ...

  10. JS高级——变量提升

    JS执行过程 1.首先是预解析:预解析过程最重要的是提升,在JavaScript代码在预解析阶段,会对以var声明的变量名,和function开头的语句块,进行提升操作 2.执行操作 全局中解析和执行 ...