Linux基础命令-kill向进程发送信号

news2025/1/22 13:12:38

Linux基础命令-setfacl设置文件ACL策略规则

Kill

一.命令介绍

先使用帮助文档查看命令的信息

NAME
kill - terminate a process

kill命令的主要功能就是向进程发送信号,这里我们主要用来终止结束进程的,与它的英文单词含义相同,在Linux系统中如果需要不使用某个进程,可以使用此命令立刻结束进程,当然也可使用servicesystemctl管理命令stop(停止)服务。

二. 命令语法

此命令的基本语法是:kill 【参数】【进程号】

SYNOPSIS
kill [-s signal|-p] [-q sigval] [-a] [–] pid…
kill -l [signal]

三. 基本参数

1.命令的常用参数

以表示形式显示

-l列出系统支持的信号
-s指定向进程发送的信号
-a不限制命令和进程号的对应关系
-p不发送任何信号

kill常用信号的含义

使用kill -l 显示所有信号

[root@localhost ~]# kill -l
 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM
16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
21) SIGTTIN	22) SIGTTOU	23) SIGURG	24) SIGXCPU	25) SIGXFSZ
26) SIGVTALRM	27) SIGPROF	28) SIGWINCH	29) SIGIO	30) SIGPWR
31) SIGSYS	34) SIGRTMIN	35) SIGRTMIN+1	36) SIGRTMIN+2	37) SIGRTMIN+3
38) SIGRTMIN+4	39) SIGRTMIN+5	40) SIGRTMIN+6	41) SIGRTMIN+7	42) SIGRTMIN+8
43) SIGRTMIN+9	44) SIGRTMIN+10	45) SIGRTMIN+11	46) SIGRTMIN+12	47) SIGRTMIN+13
48) SIGRTMIN+14	49) SIGRTMIN+15	50) SIGRTMAX-14	51) SIGRTMAX-13	52) SIGRTMAX-12
53) SIGRTMAX-11	54) SIGRTMAX-10	55) SIGRTMAX-9	56) SIGRTMAX-8	57) SIGRTMAX-7
58) SIGRTMAX-6	59) SIGRTMAX-5	60) SIGRTMAX-4	61) SIGRTMAX-3	62) SIGRTMAX-2
63) SIGRTMAX-1	64) SIGRTMAX	

通过上图能看到kill能支持的信号真的很多,但基本上我们用不到那么多信号,以下这些是较为常用的。

1)SIGHUP重新加载进程
2)SIGINT将进程中断,类似ctrl+c快捷键
3)SIGQUIT退出进程
9)SIGKILL强制结束进程,非必要情况下不建议使用,因有可能强制结束会导致数据出现丢失,或终端无法恢复到支持状态
15)SIGTERM正常结束进程,是kill命令的默认指令

四. 参考实例

1.结束MySQL进程

我们使用·topps或者netstat查看MySQL的进程PID,直接正常结束进程。

[root@localhost ~]# netstat -antp | grep mysqld
tcp6       0      0 :::3306                 :::*                    LISTEN      4561/mysqld         
[root@localhost ~]# ps -ef | grep mysql
mysql      4561      1  0 14:43 ?        00:00:01 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
root      55203   2853  0 15:23 pts/1    00:00:00 grep --color=auto mysql
[root@localhost ~]# kill 15 4561
[root@localhost ~]# ps -ef | grep mysql
root      55242   2853  0 15:24 pts/1    00:00:00 grep --color=auto mysql
[root@localhost ~]# netstat -antp | grep mysqld

可以看到服务进程已经结束,如果还不确定服务是否已经关闭,也可使用systemctl查看服务状态。

[root@localhost ~]# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since 三 2023-03-08 15:25:43 CST; 5s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 55384 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 55361 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 55387 (code=exited, status=0/SUCCESS)

3月 08 15:25:26 localhost.localdomain systemd[1]: Starting MySQL Server...
3月 08 15:25:27 localhost.localdomain systemd[1]: Started MySQL Server.

2.强制结束进程

可以在kill后面加上-9参数,彻底结束不用的进程。

kill -9 55790

五. kill的扩展命令

kill命令还有其他与之相似的命令,如:pkillkillall,下面一起来看下这些命令的使用。这里就简单的写下这些扩展命令如何使用。

1. pkill

pkill命令:process kill,主要功能是根据进程名结束指定进程

> 用法:pkill 【参数】进程名
> 常用的命令参数
>  -P:	指定父进程号
>  -g:	指定进程组
>  -t:	指定开启进程的终端
>  -u:	结束指定用户的进程
> 例子:pkill prometheus   #直接pkill在后面加进程名删除
> 例子:pkill -u host   #根据拥有者终止进程

2. killall

killall命令:Kill all,主要功能是通过名称来结束进程,说到前面的kill命令只能一个一个的关闭进程与它的子进程,这样就太繁琐了,这个killall命令只要给它一个要关闭的服务名,就会自动找到对应的全部进程信息,并且直接关闭,这个命令能实现的功能有很多,一起来看下

> 语法格式:killall 【参数】名称
> 常用的命令参数
>  -e:	 	对长名称进行精确匹配
>  -l :		打印所有已知的信号列表
>  -p:	 	结束进程所属的进程组
>  -i :	交互式结束进程,结束进程前需要进行确认
>  -r :	使用正则表达式匹配要结束的进程名称
>  -s :    用指定的进程号代替默认型号"SIGTERM"
>  -u :    结束指定用户的进程
>  
>  例子:[root@localhost ~]# killall -i vim  #交互式确认是否结束
		 杀死 vim(55790) ? (y/N) y
		 [root@localhost ~]# killall httpd  #指定服务结束所有进程
		 [root@localhost ~]# killall -l     #显示所有已知的信号列表
		 HUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM
STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS
UNUSED

总结

kill命令的用处实际就是用来结束某一个进程的,若不想使用进程,用这个命令就对了,若觉得内容还行的,可以点赞支持一下!
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/397337.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

matlab在管理学中的应用简matlab基础【三】

规划论及MATLAB计算 1、线性规划 问题的提出 例1. 某工厂在计划期内要安排甲、乙两种产品的生产,已知生产单位产品所需的资源A、B、C的消耗以及资源的计划期供给量,如下表: 问题:工厂应分别生产多少单位甲、乙产品才能使工厂获…

相亲交友直播APP源码

一、什么是亲交友直播APP源码? 亲交友直播APP源码是一款婚恋交友类型的APP,可以帮助单身男女在网络平台就可以进行相亲交友。APP源码分两端,一端是用户端,另外一端是后台端。采用的技术,前端是安卓IOS,后端…

SCI期刊写作必备(二):代码|手把手绘制目标检测领域YOLO论文常见的性能对比折线图,一键生成YOLOv7等主流论文同款图表,包含多种不同功能风格对比图表

绘制一个原创属于自己的YOLO模型性能对比图表 具体绘制操作参考:(附Python代码,直接一键生成,精度对比图表代码 ) 只需要改动为自己的mAP、Params、FPS、GFlops等数值即可,一键生成 多种图表风格📈,可以按需挑选 文章目录 绘制一个原创属于自己的YOLO模型性能对比图…

二、HTTP协议02

文章目录一、HTTP状态管理Cookie和Session二、HTTP协议之身份认证三、HTTP长连接与短连接四、HTTP中介之代理五、HTTP中介之网关六、HTTP之内容协商七、断点续传和多线程下载一、HTTP状态管理Cookie和Session HTTP的缺陷无状态。Cookie和Session就用来弥补这个缺陷的。 Cooki…

Kafka 位移主题

Kafka 位移主题位移格式创建位移提交位移删除位移Kafka 的内部主题 (Internal Topic) : __consumer_offsets (位移主题,Offsets Topic) 老 Consumer 会将位移消息提交到 ZK 中保存 当 Consumer 重启后,能自动从 ZK 中读取位移数据,继续消费…

Kafka和RabbitMQ有哪些区别,各自适合什么场景?

目录标题1. 消息的顺序2. 消息的匹配3. 消息的超时4. 消息的保持5. 消息的错误处理6. 消息的吞吐量总结1. 消息的顺序 有这样一个需求:当订单状态变化的时候,把订单状态变化的消息发送给所有关心订单变化的系统。 订单会有创建成功、待付款、已支付、已…

C++面向对象编程之三:初始化列表、类对象作为类成员、静态成员

初始化列表C提供了初始化列表语法,可以用于成员属性初始化。语法规则:无参构造函数():属性1(值1), 属性2(值2), ... { }有参构造函数(形参1, 形参2, ...):属性1(形参1), 属性2(形参2), ... { }example:写一个怪物类,有怪物id和血量…

【产品设计】ToB 增删改查显算传

入职培训时技术leader说:“我不需要你们太聪明,做好基础的增删改查就可以了。”看似很简单的活,要做好并不容易。基础的坑在哪里呢? 一、 增(新增、创建、导入) 1. 明确表字段类型 新增的业务是由不同类型…

Android Studio开发APP

1.下载Android Studio 官网下载:Android Studio for Window ... 百度云下载:android-studio-bundle-141.1903250-windows.exe Android Studio 是谷歌推出的一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用…

js 时间戳转换,全网最牛业务逻辑解析,逐行解析代码,千万不要错过,里面有些错误场景你可能还不知道

一、注意事项 1、js只识别13位的时间戳 2、10位的是unix时间戳 二、小试牛刀--日期类型转换成时间戳 可先将js字符串转换为date类型,再转换为时间戳类型。 字符串格式为 yyyy-MM-dd HH:mm:ss或者yyyy-MM-dd //把字符串转换成时间格式 let date new Date(2023-11-12…

(二十四)操作系统-吸烟者问题

文章目录一、问题描述二、问题分析1.关系分析2.整理思路3.设置信号量三、实现四、总结一、问题描述 假设一个系统有三个抽烟者进程和一个供应者进程。每个抽烟者不停地卷烟并抽掉它,但是要卷起并抽掉一支烟,抽烟者需要…

String类的底层原理和版本演变

1 String类的底层演变(1) JDK8以及之前版本 (2)JDK9以及之后版本 javaJDK8的字符串存储在char类型的数组里面,在java中,一个char类型占两个字节。但是很多时候,一个字符只需要一个字节就可存储&…

QGC UDP 建立通讯连接

QGC关于通信连接建立部分的程序比较复杂,但感觉写的很厉害,通过读代码把自己的一点理解记录下来。收集接收空地通信管理空地通信的管理在“应用程序设置->通讯连接”中进行通信连接创建,连接和断开。通讯连接添加完成后点击“连接”按钮&a…

SpringBoot+Spring常用注解总结

1. SpringBootApplication 这里先单独拎出SpringBootApplication 注解说一下,虽然我们一般不会主动去使用它。 SpringBootApplication public class SpringSecurityJwtGuideApplication {public static void main(java.lang.String[] args) {SpringApplication.ru…

携程 x TiDB丨应对全球业务海量数据增长,一栈式 HTAP 实现架构革新

随着新冠病毒疫情的缓解和控制,全球旅游业逐渐开始重新复苏。尤其在一些度假胜地,游客数量已经恢复到疫情前的水平。 携程作为全球领先的一站式旅行平台,旗下拥有携程旅行网、去哪儿网、Skyscanner 等品牌。携程旅行网向超过 9000 万会员提供…

微服务进阶之 SpringCloud Alibaba

文章目录微服务进阶🍓SpringCloud 有何劣势?🍓SpringCloud Alibaba 提供了什么?提示:以下是本篇文章正文内容,SpringCloud 系列学习将会持续更新 微服务进阶 🍓SpringCloud 有何劣势&#xff1…

Spring的概述及Spring6快速入门

Spring6 1、概述 1.1、Spring是什么? Spring 是一款主流的 Java EE 轻量级开源框架 ,Spring 由“Spring 之父”Rod Johnson 提出并创立,其目的是用于简化 Java 企业级应用的开发难度和开发周期。Spring的用途不仅限于服务器端的开发。从简单…

Git图解-远程仓库-Gitee

目录 一、前言 二、远程仓库介绍 三、Gitee(码云)的使用 3.1 注册与登录 3.2 创建项目 3.3 项目初始化 3.4 添加团队成员 四、转视频版 一、前言 接着上篇: Git图解-常用命令操作-可视化 上篇已将Git可是化操作, 接下来&…

Spring整体架构包含哪些组件?

Spring是一个轻量级java开源框架。Spring是为了解决企业应用开发的复杂性而创建的,它使用基本的JavaBean来完成以前只可能由EJB完成的事情。 Spring的用途不仅限于服务器端的开发,从简单性、可测试性和松耦合的角度而言,任何java应用都可以从…

dolphinschedule使用shell任务结束状态研究

背景:配置的dolphin任务,使用的是shell,shell里包含了spark-submit 如下截图。 dolphin shell 介绍完毕,开始说明现象。 有天有人调整了集群的cdp配置,executor-cores max1 我之前这里写的是2,所以spark任…