大家对kill -9 肯定非常熟悉,在工作中也经常用到。特别是你去重启tomcat时。可是多半看来,我们对-9的理解只是表面而已。
很少有人(包括我)认真的去了解一下 kill -n 这个n到底是什么东东。自我批评一下。
好吧。我们来好好的认识一下这个熟悉的陌生人。
1)kill
从help中可以清晰的看到 -n 指的是 信号编号,那问题来了,“信号编号”是哪位大神???
2)kill -l(查看Linux/Unix的信号变量)
这么多呀!! 今天就单独说一下SIGKILL和SIGTERM
3)(kill pid) 、( kill -15 pid)
系统会发送一个SIGTERM的信号给对应的程序。当程序接收到该signal后,将会发生以下的事情
- 程序立刻停止
- 当程序释放相应资源后再停止
- 程序可能仍然继续运行
大部分程序接收到SIGTERM信号后,会先释放自己的资源,然后在停止。但是也有程序可以在接受到信号量后,做一些其他的事情,并且这些事情是可以
配置的。如果程序正在等待IO,可能就不会立马做出相应。
也就是说,SIGTERM多半是会被阻塞的、忽略。
4)kill -9 pid
你不是可以不响应 SIGTERM吗??那好,我给你下一道必杀令,我看你还不乖乖的。多半admin会用这个命令
不过,也不是所有的程序都会乖乖听话,总有那些状态下的程序无法立刻相应。
附录:
linux signals
Signal Name | Number | Description |
SIGHUP | 1 | Hangup (POSIX) |
SIGINT | 2 | Terminal interrupt (ANSI) |
SIGQUIT | 3 | Terminal quit (POSIX) |
SIGILL | 4 | Illegal instruction (ANSI) |
SIGTRAP | 5 | Trace trap (POSIX) |
SIGIOT | 6 | IOT Trap (4.2 BSD) |
SIGBUS | 7 | BUS error (4.2 BSD) |
SIGFPE | 8 | Floating point exception (ANSI) |
SIGKILL | 9 | Kill(can't be caught or ignored) (POSIX) |
SIGUSR1 | 10 | User defined signal 1 (POSIX) |
SIGSEGV | 11 | Invalid memory segment access (ANSI) |
SIGUSR2 | 12 | User defined signal 2 (POSIX) |
SIGPIPE | 13 | Write on a pipe with no reader, Broken pipe (POSIX) |
SIGALRM | 14 | Alarm clock (POSIX) |
SIGTERM | 15 | Termination (ANSI) |
SIGSTKFLT | 16 | Stack fault |
SIGCHLD | 17 | Child process has stopped or exited, changed (POSIX) |
SIGCONT | 18 | Continue executing, if stopped (POSIX) |
SIGSTOP | 19 | Stop executing(can't be caught or ignored) (POSIX) |
SIGTSTP | 20 | Terminal stop signal (POSIX) |
SIGTTIN | 21 | Background process trying to read, from TTY (POSIX) |
SIGTTOU | 22 | Background process trying to write, to TTY (POSIX) |
SIGURG | 23 | Urgent condition on socket (4.2 BSD) |
SIGXCPU | 24 | CPU limit exceeded (4.2 BSD) |
SIGXFSZ | 25 | File size limit exceeded (4.2 BSD) |
SIGVTALRM | 26 | Virtual alarm clock (4.2 BSD) |
SIGPROF | 27 | Profiling alarm clock (4.2 BSD) |
SIGWINCH | 28 | Window size change (4.3 BSD, Sun) |
SIGIO | 29 | I/O now possible (4.2 BSD) |
SIGPWR | 30 | Power failure restart (System V) |
参考文献:
https://major.io/2010/03/18/sigterm-vs-sigkill/
http://blog.csdn.net/ashlingr/article/details/8057825
http://www.comptechdoc.org/os/linux/programming/linux_pgsignals.html
相关推荐
kill -9 pid 带来的问题优雅结束服务kill -15 pidConfigurableApplicationContext colseactuator数据备份操作 kill -9 pid ??? kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍...
util-linux-ng-2.17源码(含fdisk) Here is a list of all documented files with brief descriptions: util-linux-ng-2.17.2/disk-utils/blockdev.c [code] util-linux-ng-2.17.2/disk-utils/cramfs.h [code] ...
linux_kill用法.pdf linux_kill用法.pdf
linuxkill命令参数及用法详解借鉴.pdf
常用实例25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH35) SIGRTMIN+1 36) SIGRTMI
杀死端口 该软件包提供了强大的交叉功能,可以杀死在给定端口上运行的(Windows / MacOS / Linux)进程。安装go get github.com/rimiti/kill-port例子# Kill process running on port 80 (HTTP)$ kill-port 80# Kill...
linuxps命令、kill命令及kill函数概述[借鉴].pdf
Linux 基础 87-系统信息-07-kill命令基本使用.flv
Linux kill命令 Linux kill命令用于删除执行中的程序或工作。 kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的...
适用于macOS,Linux和Windows。 我是, 使用它来防止Chrome占用所有系统资源。 当您运行kill-tabs ,Chrome选项卡进程将被终止,这意味着它们将不再占用系统资源,但它们仍将在您的Chrome窗口中,就像崩溃一样。 ...
Linux中的kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令。通常,终止一个前台进程可以使用Ctrl+C键,但是,对于一个后台进程就须用kill命令来终止,我们就需要先使用ps/...
1、原始暴力的方法 代码如下:myLinux:/home/zhanhailiang/public_html # killall nginx 2、温柔点的方法查找指定进程的...等价方法: 代码如下:myLinux:/home/zhanhailiang/public_html # kill -9 `ps -ef|grep tcpSe
在LINUX下终止一个终端的SHELL命令
程序员喜欢的9款最佳的Linux文件比较工具 提高 Linux 开发效率的 5 个工具 你要了解的11款面向Linux系统的一流备份实用工具 16个很有用的在线工具 中国开源...
今天主要讲的是linux的kill命令,之所以要讲这个命令,主要是它的使用频率极高
kaliLinux 最新版下载 是2018年3a的最新版本
Linux系统命令源码包,包含Top,Free,ps,kill等命令
在linux/unix环境下,如何通过非root用户去kill其它用户的系统进程
本篇文章主要介绍了linux kill命令详解 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧