开发和运维,开发和测试基本上不分家。所以市面上存在很多的开发运维、运维开发、测试开发等岗位。如果你连 kill 命令都还不会,怎么好意思说你是一个合格的开发呢?
除了开发,工作或者生活当中,也存在着非常多的“异常程序”,它们可能因为 bug 导致锁死了。应用程序无法响应,所以我们就需要强制的结束掉它。kill 命令就是来干这件事情的。
如果某个应用行为失常,那么你很可能关闭不掉它。在 Windows 中有任务管理器可以强制的结束它,在 Linux(还有Mac),我们可以用一个"kill"命令强制终结它。
Kill 命令和信号
当我们执行一个"kill"命令,实际上是发送了一个信号给系统,让它去终结不正常的应用。目前 kill 命令总共有 60 个你可以使用的信号,但是基本上我们只需要知道 SIGTERM(15) 和 SIGKILL(9)。这两个是最常用的,其他常用的命令列表如下:
- 1 HUP: hangup
- 2 INIT: 相当于 Ctrl + c
- 9 KILL
- 15 TERM: Terminate (kill 的默认信号)
- 18 CONT: Continue (从STOP信号中恢复)
- 19 STOP: Stop
我们可以使用 kill -l 命令,列出整个 kill 信号的列表。
kill -l
- SIGTERM – 此信号请求一个进程停止运行。此信号是可以被忽略的。进程可以用一段时间来正常关闭,一个程序的正常关闭一般需要一段时间来保存进度并释放资源。换句话说,它不是强制停止。
- SIGKILL – 此信号强制进程立刻停止运行。程序不能忽略此信号,而未保存的进度将会丢失。
使用 kill 的语法是:
kill [信号或选项] PID(s)
默认信号(当没有指定的时候)是 SIGTERM。当它不起作用时,你可以使用下面的命令来强制 kill 掉一个进程:
kill SIGKILL PID
最常用的命令是 kill -9,用法如下:
kill -9 PID
这里 -9 代表着 SIGKILL 信号。也就是前面那个信号列表中每个命令和信号前面的编号。
如果不知道应用的 PID,仅需要运行这个命令:
ps ux
我们常用的是 ps ux|grep java。kill 命令还有几个兄弟命令,比如 PKill、Killall、xkill 等。
这些命令虽然简单,但是在生产环境中还是要慎用。一个失误可能会给公司带来几千万,甚至更高的损失!
: » 常用的 kill 命令,来了解一下!
原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/252731.html