N天学习一个linux命令之kill
用途
用于终止进程
用法
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的更多相关文章
- N天学习一个Linux命令之帮助命令:man
前言 工作中每天都在使用常用的命令和非常用的命令,忘记了用法或者参数,都会bing一下,然后如此循环.一直没有真正的系统的深入的去了解命令的用法,我决定打破它.以前看到有人,每天学习一个linux命令 ...
- N天学习一个Linux命令之free
用途 查看系统内存(物理/虚拟/缓存/共享)使用情况 用法 free [-b | -k | -m | -g | -h] [-o] [-s delay ] [-c count ] [-a] [-t] [ ...
- N天学习一个linux命令之ping
用途 检测主机是否可到达,也就是说,目标主机是否可以联网,还可以用于检测网速.通过发送ICMP ECHO_REQUEST数据包检测. 用法 ping [options] destination 常用选 ...
- N天学习一个linux命令之du
用途 统计文件或者目录占用硬盘空间大小 用法 du [OPTION] [FILE]du [OPTION] --files0-from=F 常用参数 -a, --all统计所有文件,不仅仅是目录 -b, ...
- N天学习一个linux命令之scp
用途 通过ssh通道,不同主机之间复制文件 用法 scp [options] [user@host:]file1 [user2@host2:]file2 常用参数 -1使用 ssh 1协议 -2使用s ...
- 每天学习一个Linux命令-目录
在工作中总会零零散散使用到各种Linux命令,从今天开始详细的学习一下linux常用命令,坚持每天一个命令,学习的主要参考资料为: 1.竹子-博客(https://www.cnblogs.com/pe ...
- N天学习一个linux命令之umask
前言 umask不是linux命令,而是shell内置的指令,俗称用户权限掩码,用于对用户创建的文件和目录设置默认权限.默认的权限掩码是0022,也就是说新创建的文件权限是0644,新创建的目录权限是 ...
- N天学习一个Linux命令之top
用途 查看机器负载以及进程资源占用情况,linux系统性能分析工具 用法 top -hv | -abcHimMsS -d delay -n iterations -p pid [, pid ...] ...
- N天学习一个linux命令之ip
用途 show / manipulate routing, devices, policy routing and tunnels 用法 通用格式 ip [ OPTIONS ] OBJECT { CO ...
随机推荐
- phpexecl 的基本操作
基本使用方法分三部分:一.引入接口 // PHPExcel_IOFactory require_once dirname(__FILE__).'/Classes/PHPExcel/IOFactory. ...
- jquery中对于为一组标签赋予点击事件
可以用each,但是each不能对动态的元素进行事件的绑定, 不过,其实也很简单,只需要获取所有的标签集,然后用动态绑定的方法,比如live进行绑定就可以了. 有时候,其实不难,只是自己想的太过复杂. ...
- 题解报告:poj 3070 Fibonacci
题目链接:http://poj.org/problem?id=3070 Description In the Fibonacci integer sequence, F0 = 0, F1 = 1, a ...
- MySQL的安装和启动
一.MySQL各类安装方法的比较 在Linux系统下,MySQL有3种主要的安装方式,分别是:RPM安装.二进制安装.源码安装.三种安装方式的优缺点如下表所示: RPM安装 二进制安装 源码安装 ...
- Ubuntu16安装jdk8配置Tomcat9
一.配置jdk 1.下载解压是肯定不能少的 2.配置环境变量根据自己需求来 export JAVA_HOME=/usr/software/jdk1.8.0_121 export CLASSPATH=. ...
- canves图形变换
canves用得好可以有好多效果: html:<canvas id="myCanvas" width="700" height="300&quo ...
- JS——void(0)
a标签中阻止跳转: <a href="javascript:;">跳转</a> <a href="javascript:void(0)&qu ...
- R语言开发环境的搭建
1.R语言的下载 https://mirrors.tuna.tsinghua.edu.cn/CRAN/ 2.R语言的安装 安装完后,打开R Console 输入 pie(c(0.9, 0.2, 0.3 ...
- 在Mac安装Scheme
我也不知道安装的是Scheme这门语言还是编程环境还是其他的什么东西,反正能在控制台运行Scheme代码了.... 谁能告诉我怎么在sublime使用scheme.... 原地址 首先下载安装MIT- ...
- Cuder - 用C++11封装的CUDA类
以前写cuda:初始化环境,申请显存,初始化显存,launch kernel,拷贝数据,释放显存.一个页面大部分都是这些繁杂但又必须的操作,有时还会忘掉释放部分显存. 今天用C++11封装了这些CUD ...