kill 命令的用途

kill 命令很容易让人产生误解,以为它仅仅就是用来杀死进程的。我们来看一下 man page 对它的解释:kill - send a signal to a process.

从官方的解释不难看出,kill 是向进程发送信号的命令。当然我们可以向进程发送一个终止运行的信号,此时的 kill 命令才是名至实归。事实上如果我们不给 kill 命令传递信号参数,它默认传递终止进程运行的信号给进程!这是 kill 命令最主要的用法,也是本文要介绍的内容。

一般情况下,终止一个前台进程使用 Ctrl + C 就可以了。对于一个后台进程就须用 kill 命令来终止。我们会先使用 ps、top 等命令获得进程的 PID,然后使用 kill 命令来杀掉该进程。

kill 命令格式

kill [options] [...]

[…] : 把信号发送给列出的所有进程。

options :

- : 指定发送给进程的信号,指定信号的名称或号码都可以。

-l : 列出所有信号的名称和号码。

kill 命令详情

查看可用信号

既然 kill 命令是用来向进程发送信号的,那就让我们先来看看都有哪些信号可以发送给进程。

$ kill -l

可不少啊!但这些信号中只有第 9 种信号(SIGKILL)才可以无条件的终止进程,其他信号进程都有权利忽略。并且这么多的信号中常用的也不多,下面我们解释几个常用信号的含义。

1

SIGHUP

启动被终止的程序,可让该进程重新读取自己的配置文件,类似重新启动。

2

SIGINT

相当于用键盘输入 [ctrl]-c 来中断一个程序的进行。

9

SIGKILL

代表强制中断一个程序的进行,如果该程序进行到一半,那么尚未完成的部分可能会有“半产品”产生,类似 vim会有 .filename.swp 保留下来。

15

SIGTERM

以正常的方式来终止该程序。由于是正常的终止,所以后续的动作会将他完成。不过,如果该程序已经发生问题,就是无法使用正常的方法终止时,输入这个 signal 也是没有用的。

19

SIGSTOP

相当于用键盘输入 [ctrl]-z 来暂停一个程序的进行。

上表仅是常见的信号,更多的信号信息请自行通过 man 7 signal 了解。一般来说,只要记住 "1,9,15" 这三个信号的意义就可以了。

常用命令

$ kill -15 pid

这条命令发信号让进程正常退出。所谓的正常退出是指按应用程序自己的退出流程完成退出,这样就可以清理并释放资源。比如 vim 程序,如果是正常的退出,就会删除掉临时文件 *.swp。

既然信号 15 是退出进程的正确方式,那它也应该是最常用的方式,因而我们可以省略参数 -15。

$ kill pid

这条命令和上面的命令是等价的,kill 命令默认发送信号 15 给目标进程。

当进程出现了异常状况,不能通过信号15正常退出时,我们就需要通过非常的手段直接终结掉进程。所谓的非常手段就是传递信号 9 给目标进程!

$ kill -9 pid

这样结束掉的进程不会进行资源的清理工作,所以如果你用它来终结掉 vim 的进程,就会发现临时文件 *.swp 没有被删除。

总结

使用信号 15 是安全的,而信号 9 则是处理异常进程的最后手段,请勿滥用。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是编程之家为你收集整理的linux kill命令详解全部内容,希望文章能够帮你解决linux kill命令详解所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

linux kill命令信号,linux kill命令详解相关推荐

  1. linux命令ps -aux|grep xxx详解

    linux命令ps -aux|grep xxx详解 要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程, 而ps命令(Process Status)就是最基本同时也是非常强大 ...

  2. kill -9 进程号杀不死可以用下面的杀掉 Linux下强制杀死进程的方法详解

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

  3. linux xxx命令,linux命令ps aux|grep xxx详解

    对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程, 而ps命令(Process Status)就是最基本同时也是非常强大的进程查看命令. 使用该命令 可以确定有哪些进程正在运 ...

  4. linux添加用户命令_Linux useradd命令添加新用户图文详解

    在Linux 系统中,可以使用 useradd 命令新建用户,此命令的基本格式如下: [root@localhost ~]#useradd [选项] 用户名 该命令常用的选项及各自的含义,如表 1 所 ...

  5. 编程实现linux中的who命令功能,Linux who命令简介及使用方法详解

    玩蛇网推荐图文教程:python 列表 本文是关于Linux who命令简介及使用方法详解一文.如果你是一名系统管理员,可能需要需要在一个特定的时间点都有谁活跃在系统上.以便必须严密监视我们的服务器. ...

  6. linux cp -r 参数,Linux系统中cp命令的参数及用法详解

    Linux系统中cp命令主要是用来复制文件或者目录.下面由学习啦小编为大家整理了Linux系统中cp命令的参数及用法详解的相关知识,希望对大家有帮助! Linux系统中cp命令的参数及用法详解:参数说 ...

  7. linux dig命令的安装和使用详解

    linux dig命令的安装和使用详解 什么是dig命令 Dig是Domain Information Gopher的缩写,是一种DNS查找实用程序,用于探测DNS服务器并解决与DNS服务器相关的问题 ...

  8. linux添加目录命令权限,linux chmod命令设置目录/文件权限详解

    首页 > Linux教程 > 常用命令 > chmod 文件权限 linux chmod命令设置目录/文件权限详解 linux中chmod命令用于改变系统文件或目录的访问权限,用数字 ...

  9. linux中替换命令详解,linux中sed命令字符串替换的用法详解

    Linux系统中sed命令可以将字符串批量替换,省去了很多麻烦,下面由学习啦小编为大家整理了linux系统中sed命令字符串替换的用法详解,希望对大家有帮助! linux中sed命令字符串替换的用法详 ...

  10. python调用adb shell命令_Python之使用adb shell命令启动应用的方法详解

    Python之使用adb shell命令启动应用的方法详解 一直有一个心愿希望可以用Python做安卓自动化功能测试,在一步步摸索中,之前是用monkeyrunner,但是发现对于控件ID的使用非常具 ...

最新文章

  1. 大棚骨架搭建好 科学施肥增收增产
  2. read name 和 read 在 Bash 中的区别
  3. Exceptions Errors - 异常与错误
  4. Fluent Ribbon 第八步 其他控件
  5. python进行中文文本聚类(切词以及Kmeans聚类)
  6. c语言叠阵题目怎么做,选出下列词语书写全正确的一组[]A、贪婪点辍忍军不禁玲珑剔透B、辜负骚扰擎天旱地多姿多采C、小憩茁壮怡然自得头昏目眩D、玷污糟蹋蜂围叠阵明察秋豪...
  7. 期权定价模型之经典--BS模型
  8. 基因结构图的0_肿瘤基因突变Biomarkers的药物研究神器—OncoKB数据库
  9. 华为机试题练习(一)
  10. 音标课件软件测试,宝宝益智英语字母音标(测试版)
  11. 独家免费资源:《成长的烦恼》全7季在线高清无水印播放!
  12. Unity下利用 timeScale和 unscaledDeltaTime实现部分静帧
  13. html5中怎么实现居中显示图片
  14. 夸夸群火爆背后,是低成本社交的情绪价值
  15. use of undeclared identifier ‘connect‘
  16. chatgpt API key 获取及延续
  17. iOS开发系列课程(01) --- iOS编程入门
  18. php 简单图片验证码,PHP 实现简单图片验证码
  19. linux so 发布,如何在Linux上构建发布包含.so动态库的snap安装包
  20. GMT、UTC与24时区等时间概念

热门文章

  1. 高校调课代课审批系统设计研究
  2. CIDetector 相册识别二维码出错
  3. Ants UVA - 1411(km板题竟然让我换了个板子)
  4. MySQL慢查询(一) - 开启慢查询
  5. 浅谈hashcode
  6. linux 系统安装配置 zabbix服务(源码安装)
  7. 两台笔记本怎么连接局域网
  8. MVC3中的tempdata,viewdata,viewbag总结
  9. AtlasControlToolkit.CascadingDropDownNameValue自定义用法
  10. 多写写 leetcode 43. 字符串相乘