shell中的kill命令
简介:
无论你使用哪种操作系统,你一定会遇到某个行为失常的应用,它把自己锁死并拒绝关闭。在Linux(还有Mac),你可以用一个"kill"命令强制终结它。在这个教程中,我们将展示给你多种方式使用"kill"命令终结应用。
kill命令
1,kill命令和信号:
当你执行一个"kill"命令,你实际上发送了一个信号给系统,让它去终结不正常的应用。总共有60个你可以使用的信号,但是基本上你只需要知道SIGTERM(15)和SIGKILL(9)。
kill命令的工作原理是,向Linux系统的内核发送一个系统操作信号和某个程序的进程标识号,然后系统内核就可以对进程标识号指定的进程进行操作。比如在top命令中,我们看到系统运行许多进程,有时就需要使用kill中止某些进程来提高系统资源。kill是大多数Shell内部命令可以直接调用的。
2,你可以用这个命令看到所有信号的列表,即列出所有信号名称:
$ kill -l
SIGTERM:此信号请求一个进程停止运行。此信号是可以被忽略的。进程可以用一段时间来正常关闭,一个程序的正常关闭一般需要一段时间来保存进度并释放资源。换句话说,它不是强制停止。
SIGKILL:此信号强制进程立刻停止运行。程序不能忽略此信号,而未保存的进度将会丢失。
3,使用"kill"的语法是:
kill [信号或选项] PID(s)
默认信号(当没有指定的时候)是SIGTERM。当它不起作用时,你可以使用下面的命令来强制kill掉一个进程:
kill SIGKILL PID
或者
kill -9 PID
这里"-9"代表着SIGKILL信号。
例如,要kill掉Chrome,我会运行命令:
kill -9 3629,通过$ ps -aux可以得到pid
也可以在同一时间kill多个进程。
kill -9 PID1 PID2 PID3
得到指定信号的数值
[root@localhost test6]# kill -l KILL
9
[root@localhost test6]# kill -l SIGKILL
9
[root@localhost test6]# kill -l TERM
15
[root@localhost test6]# kill -l SIGTERM
15
4,init进程是不可杀的
命令:kill -9 1
init是Linux系统操作中不可缺少的程序之一。所谓的init进程,它是一个由内核启动的用户级进程。内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以,init始终是第一个进程(其进程编号始终为1)。 其它所有进程都是init进程的子孙。init进程是不可杀的!
killall命令:
killall同样使用进程名替代PID,并且它会kill掉所有的同名进程。例如,如果你正在运行多个Firefox浏览器的实例,可以用命令把它们全部kill掉:
killall chrome
xkill命令:
xkill 是图形方式kill一个应用。当你在终端键入"xkill",你的光标将立刻变成一个"十字"。你只需要做的是在不正常的应用上点击一下,它就会立刻kill掉这个应用。
注意:
$ kill -9 PID, 这个强大和危险的命令迫使进程在运行时突然终止,进程在结束后不能自我清理。危害是导致系统资源无法正常释放,一般不推荐使用,除非其他办法都无效。
当使用此命令时,一定要通过ps -ef确认没有剩下任何僵尸进程。只能通过终止父进程来消除僵尸进程。如果僵尸进程被init收养,问题就比较严重了。杀死init进程意味着关闭系统。
如果系统中有僵尸进程,并且其父进程是init,而且僵尸进程占用了大量的系统资源,那么就需要在某个时候重启机器以清除进程表了。
标准的kill命令通常都能达到目的。终止有问题的进程,并把进程的资源释放给系统。然而,如果进程启动了子进程,只杀死父进程,子进程仍在运行,因此仍消耗资源。为了防止这些所谓的“僵尸进程”,应确保在杀死父进程之前,先杀死其所有的子进程。
shell中的kill命令相关推荐
- linux命令kill_什么是Linux中的kill命令?
linux命令kill Need to kill a running process? The kill command in Linux is built for just that. No ope ...
- linux中kill命令默认发出的信号,linux中的kill命令的详细解释
linxu下的kill命令主要功能是用来杀死进程的.下面由学习啦小编为大家整理了linux的kill命令的详细解释的相关知识,希望对大家有帮助! 一.linux中的kill命令的详细解释 1.命令格式 ...
- linux shell 中的sleep命令
开始还以为是这样的语法: sleep(1), 后面发现是: linux shell 中的sleep命令 分类: LINUX 在有的shell(比如linux中的bash)中sleep还支持睡眠(分,小 ...
- linux脚本添加source,shell中的source命令的巧妙用法
首先,通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录.例如,当我们修改了/etc/profile文件,并想让它立刻生效,而不用重新登录,就可以使用source命令,如sourc ...
- shell中的PS命令的含义
1.ps查看进程的命令. 2.PS命令中的%CPU是指一个进程占用CPU的时间百分比. PS的man手册的解释是这样的 ps的代码中是这样处理的 其中seconds_since_boot是用当前时间减 ...
- [linux运维]1@linux shell中的实用命令
函数传参 shell中如何写一个函数呢? 这个问题, 首先说, shell中的函数, 在方法体里, 没有形参, 都是通过默认的特殊值获得的, 比如$1, $2, 参数的数量用. 而传参呢, 也是通过方 ...
- shell中的expect命令
原文https://blog.csdn.net/jxdl6655/article/details/78626749 expect可以实现shell实现不了的用户交互的需求.expect可以将交互写在一 ...
- shell中 的 export命令
export 功能说明:设置或显示环境变量. 语 法:export [-fnp][变量名称]=[变量设置值] 补充说明:在shell中执行程序时,shell会提供一组环境变量.export可新增,修改 ...
- shell中一些特殊命令|: 管道命令。;;在前一个命令结束时,而忽略其返回值,继续执行下一個命令。
shell传递参数 $0 对应的是当前 Shell 脚本程序的名称,$#对应的是总共有几个参数,$*对应的是所有位置的参数值,$?对应的是显示上一次命令的执行返回值,而$1.$2.$3--则分别对应着 ...
最新文章
- 【算法】非极大值抑制原理、流程和代码
- UVA 10004 - Bicoloring
- linux的基础知识——TCP异常断开
- 赠书 | 如何部署一个Knative Service
- GoldenGate组态(四)它veridata组态
- Windows上安装运行 cnpm, 来代替 npm
- Java学习笔记基础(上)
- 1. WordPress 安装
- Java Web实战篇-轻松提高千万级数据库查询效率
- 制作嵌入式文件系统工具 mkfs.ext2 mkfs.ext3 mkfs.ext4
- php 405 not allowed,405 Not Allowed 错误
- Prometheus+SpringBoot应用监控全过程详解
- CSDN 双11优惠券 使用攻略,畅享折上折!
- 王者怎么看微信以前玩过的服务器,王者荣耀如何查看微信帐号在那个区玩过
- 什么是token及怎样生成token
- vue双向绑定原理及实现
- linux+synaptics+驱动程序,Linux下Synaptics笔记本触摸板的配置
- 机器学习隐私保护-MPC通用编译器
- 03 A股10个月争取翻10倍实盘操作记录(第1周-休养生息,守株待兔)
- 样本服从正态分布,证明样本容量n乘样本方差与总体方差之比服从卡方分布x^2(n)...