前言
在Linux的系统中,kill是我们最常见的命令之一。
kill,英语中为杀死的意思,顾名思义,就是用来杀死一些东西的命令,在linux中就是用来杀死系统中的进程。

在Windows系统中,如果应用程序无反应我们会启动任务管理器终止应用,而在Linux系统中则使用kill命令,kill命令主要用于强制关闭进程,下面就介绍一下Linux中kill命令的基础用法和进阶用法。

基础
一般情况下,想要杀死后台一个进程,我们通常只需要做两步:

第一步:找到某个应用的进程号:

ps -aux | grep 应用名称

或 ps -ef | grep 应用名称

或者 top  | grep 应用名称

第二步:杀死进程

正常杀死进程:kill  -15  pid号

如杀死上图中pid为10的进程:kill -15 10

强制杀死进程: kill -9 pid号

注:杀死进程的时候,推荐是正常杀死进程,而不是强制杀死进程。

原理解读:

Kill命令和信号

  当你执行一个“kill”命令,你实际上发送了一个信号给系统,告诉它去终结不正常的应用。总共有60个你可以使用的信号,但是基本上你只需要知道SIGTERM(15)(正常杀死信号)和SIGKILL(9)(强制杀死信号)。

  你可以用这个命令看到所有信号的列表:

  kill -l

上图:共有64中信号,每种信号均有名称和对应的信号序列号,当想要发送什么信号给系统的时候,只要告知系统该信号的序列号即可。如想要强制结束进程,则需要发送9号信号给系统,应该是这样的:kill -9 pid号。

实际中常用的只有9种信号(最常用的只有2中:9 和 15):

<1> 1 终端断线

<2>2 中断(等同 Ctrl + C)

<3>3 退出(同 Ctrl + \)

<4>15 终止(可以使得进程在退出之前清理并释放资源)

<5> 9 强制终止

<6>18 继续(与19相反)

<7>19 暂停(等同 Ctrl + Z)

进阶
1 查找进程号的方式进行改进
以查找firefox进程为例:

常规:ps -aux | grep java

进阶:pgrep java

或:  pidof firefox-bin (不推荐)

解读:

pgrep: 这个命令是专门用于进程查询的grep。

pidof: 看到pidof想到啥?没错pid of xx,字面翻译过来就是 xx的PID。和pgrep相比稍显不足的是,pidof必须给出进程的全名。

2 将常规的两步杀死进程合并为一步
进阶1: kill -s 9 `ps -aux | grep firefox | awk '{print $2}'`

其中awk '{print $2}' 的作用就是打印(print)出第二列的内容。根据常规篇,可以知道ps输出的第二列正好是PID。就把进程相应的PID通过xargs传递给kill作参数,杀掉对应的进程。

进阶2: pgrep firefox | xargs kill -s 9

“ xargs kill -s 9 ”中的xargs命令是用来把前面命令的输出结果(PID)作为“kill -s 9”命令的参数,并执行该命令。“kill -s 9”会强行杀掉指定进程。

进阶3:kill -s 9  `pgrep firefox`

进阶4: pkill -9 firefox

前面三个进阶虽然将查找进程和删除进程合并为一个步骤,但是,仍然是两个命令,这里采用pkill命令将查找和杀掉进程的两个命令合并为一个命令了,即:pkill=pgrep + kill,表示找到并杀死进程。

进阶5:killall -9 firefox

killall和pkill是相似的,不过如果给出的进程名不完整,killall会报错。pkill或者pgrep只要给出进程名的一部分就可以终止进程。

3 强制踢掉登陆用户
有的时候,可能我们的系统中有很多用户在同时登陆这一台服务器,而我们想要踢掉某个不良用户,就可以执行如下操作。

(1)查看用户登陆信息: who

(2)查看自己的身份(避免把自己踢掉):whoami

(3)踢掉用户ats

pkill -kill -t pts/2(按终端踢,pts/2为所踢用户的终端)

pkill -u ats(按用户名踢,ats为用户名)

kill的注意事项
1.如果kill时,不指定信号就会默认发送信号15,终止指定进程,使得进程在退出之前清理并释放资源。

2.使用kill时,root用户将影响用户的进程,非root用户只能影响自己的进程。

3.使用kill时,当kill向进程发送信号,必须是这些进程的主人。如果杀死一个没有权限杀死的进程或杀死一个不存在的进程,就会报错。如下:
-bash: kill: (20) - No such process

4.使用kill时,如果成功地发送了信号,shell会在屏幕上显示出进程的终止信息。(按下Enter键,就会显示出来)

5.使用kill时,如果使用信号9,使进程强行终止,可能会使数据丢失或者终端无法恢复到正常状态。

6.init进程,它是一个由内核启动的用户级进程,所有进程都是init进程的子孙,init不可杀。

Linux 系统中kill命令杀死进程常用技巧相关推荐

  1. linux命令中强杀进程,Linux 系统中kill命令杀死进程常用技巧

    目录 前言 基础 进阶 1 查找进程号的方式进行改进 2 将常规的两步杀死进程合并为一步 3 强制踢掉登陆用户 kill的注意事项 前言 在Linux的系统中,kill是我们最常见的命令之一. kil ...

  2. linux用kill命令删除进程,linux 使用kill命令杀死进程的几个办法

    常规篇: 首先,用ps查看进程,方法如下: $ ps -ef -- smx       1822     1  0 11:38 ?        00:00:49 gnome-terminal smx ...

  3. linux的常用的wc命令,Linux系统中wc命令使用详解

    Linux系统中wc命令是统计文件文本的字节数等并显示输出.下面由学习啦小编为大家整理了linux系统中wc命令使用详解,希望对大家有帮助! Linux系统中wc命令使用详解 Linux系统中的wc( ...

  4. Linux系统中top命令详解

    在Linux系统中top命令是常用的分析性能的工具,能够实时监控系统中各个进程资源占用的情况,这和windows中任务管理器有点类似. top参数详解 第一行,任务队列信息,同 uptime 命令的执 ...

  5. linux 查找只读文件夹,Linux系统中查找命令find的使用方法(二)

    今天达内Linux培训小编要继续跟大家分享关于Linux系统中中查找命令find的使用方法的文章.在上文中小编提到,Linux查找命令是Linux系统中很重要也是很常用的命令之一.Linux的查找命令 ...

  6. linux系统里route -n不起作用,Linux系统中traceroute命令使用详解

    Linux系统中traceroute命令可以追踪到网络数据包的路由途径.下面由学习啦小编为大家整理了linux系统中traceroute命令使用详解,希望对大家有帮助! Linux系统中tracero ...

  7. linux系统中find怎么用,Linux系统中查找命令find的使用方法(一)

    今天达内Linux培训小编要跟大家分享的文章是关于Linux系统中中查找命令find的使用方法.熟悉Linux系统的小伙伴们都知道,Linux查找命令是Linux系统中很重要也是很常用的命令之一.Li ...

  8. linux系统中ssh命令,Linux系统中SSH 命令的用法有哪些?

    今天小编要跟大家分享的文章是关于Linux系统中SSH命令的用法有哪些?一个系统管理员可能会同时管理着多台服务器,这些服务器也许会放在不同的地方.要亲自一台一台的去访问来管理它们显然不是最好的方法,通 ...

  9. linux系统英语词汇大全,linux系统中常命令和英语词汇.docx

    linux系统中常命令和英语词汇 Linux系统管理中基本命令和英语词汇?第一章linux系统简介及安装Open Source Software???? 开放源代码软件GNU??? General P ...

最新文章

  1. 分类模型的性能评价指标(Classification Model Performance Evaluation Metric)
  2. 第三日:继续恢复网站
  3. 【GVA】gorm多对多many2many删除数据的同时级联删除关联中间表中的关联数据
  4. HtmlAgilityPack 使用
  5. 班级日常 | 一天一瞬间!
  6. Java并发教程–原子性和竞争条件
  7. linux gdb 寄存器,x86 调试寄存器
  8. 谷歌悄悄修复4个 0day
  9. Matlab Tricks(十二)—— 矩阵阈值化的实现
  10. java中关于x轴翻转和y轴翻转如何计算_如何用加速度计提高倾角测量精度?
  11. 《电脑音乐制作实战指南:伴奏、录歌、MTV全攻略》——2.3 提取VCD、DVD视频中的音频...
  12. 【独立小程序商城】THINKPHP带后台管理+MYSQL数据库微信小程序商城系统源码
  13. Programmers at Work
  14. 想要运营公众号?公众号形象定位有哪些?
  15. 【攻防世界 level2】
  16. ZooKeeper原理和实践
  17. 项目awesome-semantic-segmentation-pytorch以及FCN、Unet、deeplabv1、deeplabv2、deeplabv3、deeplabv3+的网络
  18. 算法思想理解系列 -- 检索排序学习之pairwise类型
  19. npm audit fix命令使用
  20. C语言编译、链接简介

热门文章

  1. 乌班图系统虚拟机与window中文件夹共享
  2. 如何在Simulink中添加自己的库?
  3. ubuntu新建文件夹和文件命令
  4. python简单几步制作完整可视化的窗口
  5. html密码以密文方式显示,HTML input text框显示为密文
  6. smart gesture安装失败_PyroSim2019英文版软件下载和安装教程|兼容WIN10
  7. 第十一届蓝桥杯JavaA省赛填空题
  8. linux远程登录、拷贝及无线配置
  9. 给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。...
  10. 道生天合冲刺上交所:年营收34亿 季刚夫妇控制60%表决权