Java基础、中级、高级、架构面试资料

常用的 kill 命令,来了解一下!

NDIS herman 2660浏览
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog2,发送下载链接帮助你免费下载!
本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云

开发和运维,开发和测试基本上不分家。所以市面上存在很多的开发运维、运维开发、测试开发等岗位。如果你连 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

Kill 命令和信号

  • 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 等。

这些命令虽然简单,但是在生产环境中还是要慎用。一个失误可能会给公司带来几千万,甚至更高的损失!

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!

本文原文出处:业余草: » 常用的 kill 命令,来了解一下!