在linux中,kill命令是用来杀死系统中的进程,使用步骤:1、利用ps、top、pgrep等命令获取指定应用的进程号;2、使用kill命令根据进程号杀死该进程,语法“kill -15 进程号”或“ kill -9 进程号”。执行原理:kill命令会向操作系统内核发送一个信号(多是终止信号)和目标进程的PID号,然后系统内核根据收到的信号类型,对指定进程进行相应的操作。
本教程操作环境:linux7.3系统、Dell G3电脑。
在Linux的系统中,kill是我们最常见的命令之一。
kill,英语中为杀死的意思,顾名思义,就是用来杀死一些东西的命令,在linux中就是用来杀死系统中的进程。
kill 命令的执行原理是这样的,kill 命令会向操作系统内核发送一个信号(多是终止信号)和目标进程的 PID,然后系统内核根据收到的信号类型,对指定进程进行相应的操作。
在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 终端断线
2 中断(等同 Ctrl + C)
3 退出(同 Ctrl + \)
15 终止(可以使得进程在退出之前清理并释放资源)
9 强制终止
18 继续(与19相反)
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视频教程》
以上是linux杀死进程命令kill怎么用的详细内容。更多信息请关注PHP中文网其他相关文章!

linux设备节点是应用程序和设备驱动程序沟通的一个桥梁;设备节点被创建在“/dev”,是连接内核与用户层的枢纽,相当于硬盘的inode一样的东西,记录了硬件设备的位置和信息。设备节点使用户可以与内核进行硬件的沟通,读写设备以及其他的操作。

区别:1、open是UNIX系统调用函数,而fopen是ANSIC标准中的C语言库函数;2、open的移植性没fopen好;3、fopen只能操纵普通正规文件,而open可以操作普通文件、网络套接字等;4、open无缓冲,fopen有缓冲。

端口映射又称端口转发,是指将外部主机的IP地址的端口映射到Intranet中的一台计算机,当用户访问外网IP的这个端口时,服务器自动将请求映射到对应局域网内部的机器上;可以通过使用动态或固定的公共网络IP路由ADSL宽带路由器来实现。

在linux中,eof是自定义终止符,是“END Of File”的缩写;因为是自定义的终止符,所以eof就不是固定的,可以随意的设置别名,linux中按“ctrl+d”就代表eof,eof一般会配合cat命令用于多行文本输出,指文件末尾。

在linux中,交叉编译是指在一个平台上生成另一个平台上的可执行代码,即编译源代码的平台和执行源代码编译后程序的平台是两个不同的平台。使用交叉编译的原因:1、目标系统没有能力在其上进行本地编译;2、有能力进行源代码编译的平台与目标平台不同。

在linux中,可以利用“rpm -qa pcre”命令判断pcre是否安装;rpm命令专门用于管理各项套件,使用该命令后,若结果中出现pcre的版本信息,则表示pcre已经安装,若没有出现版本信息,则表示没有安装pcre。

linux查询mac地址的方法:1、打开系统,在桌面中点击鼠标右键,选择“打开终端”;2、在终端中,执行“ifconfig”命令,查看输出结果,在输出信息第四行中紧跟“ether”单词后的字符串就是mac地址。

在linux中,rpc是远程过程调用的意思,是Reomote Procedure Call的缩写,特指一种隐藏了过程调用时实际通信细节的IPC方法;linux中通过RPC可以充分利用非共享内存的多处理器环境,提高系统资源的利用率。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Dreamweaver CS6
视觉化网页开发工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境