1.结束进程的正确方式
1. 结束进程的方式一般会用 kill -9 pid的方式
给进程发-9信号会造成进程强制退出,有一些未flush的文件描述符,没有机会flush,会造成数据不准确,或者磁盘文件数据不完成或损坏的情况。
推荐使用 kill -2 pid结束进程,-2信号在没有注册处理函数的情况下,会执行默认处理退出进程,但是会执行进程的钩子函数,在钩子函数里做清理工作,把未flush的数据存到磁盘,socket未发出的数据发出去。
2. 实验
创建一个简单的springboot程序
HiController继承DisposableBean,继承这个类会在钩子函数回调里面的方法。
@RestController
@Slf4j
public class HiController implements DisposableBean {@GetMapping("/hi")public String hi(){log.info("hi");return "hi";}@Overridepublic void destroy() throws Exception {log.info("程序结束回调,用于结束时关闭资源");}
}
打包启动
java -jar simple-app.jar
3. kill -9 结束进程
并没有回调钩子函数
4. kill -2 结束进程
执行了钩子回调,把该处理的事情处理完毕,内存数据未flush的flush到磁盘
1.结束进程的正确方式相关推荐
- linux wait函数头文件_第五十八章、linux中的3种正常结束进程的方式你都了解么...
在前两章中我们了解了创建进程,这一章我们来了解下,在linux下怎么结束进程. 在linux中,有3种正常结束进程的方法和2种异常终止的方法: 1. 正常结束: a. 在main函数中调用return ...
- C语言文件读取结束判断正确方式
前言 对于在文件操作时,怎么样判断文件是否结束,以feof来判断文件读取结束是否正确? 一.MSDN对feof的介绍? 对与返回值的描述是: feof函数在第一次读取操作后返回一个非零值,该操作试图读 ...
- linux结束进程_生人勿近之Linux里养僵尸
Linux里养僵尸是怎么回事呢?Linux相信大家都很熟悉,但是Linux里养僵尸是怎么回事呢,下面就让小编带大家一起了解吧. - 1 - 上一篇挖了个 SIGHUP 的坑,这篇试着填一下. 之前在& ...
- php与go服务之间调用,PHP调用Go服务的正确方式 - Unix Domain Sockets
原标题:PHP调用Go服务的正确方式 - Unix Domain Sockets 作者:枕边书 链接:http://www.cnblogs.com/zhenbianshu/p/7265415.html ...
- c/c++ 结束进程的方法
1.使用ExitProcess()结束进程 进程只是提供了一段地址空间和内核对象,其运行时通过在其地址空间内的主线程来体现的.当主线程的进入点函数返回时,进程也就随之结束.这种进程的终止方式 ...
- 使用ExitProcess()结束本进程、TerminateProcess 结束进程
进程只是提供了一段地址空间和内核对象,其运行时通过在其地址空间内的主线程来体现的.当主线程的进入点函数返回时,进程也就随之结束.这种进程的终止方式是进程的正常退出,进程中的所有线程资源都能够得到正确的 ...
- 使用ExitProcess()结束本进程,TerminateProcess()结束进程
进程只是提供了一段地址空间和内核对象,其运行时通过在其地址空间内的主线程来体现的.当主线程的进入点函数返回时,进程也就随之结束.这种进程的终止方式是进程的正常退出,进程中的所有线程资源都能够得到正确的 ...
- java 中启动线程的正确方式
启动线程的正确方式是运行Thread类中的start()方法,使用run()方法只不过是运行了一个普通方法而已. 线程对象在初始化之后,由当前线程(主线程)执行的start()方法,然后去告诉jvm虚 ...
- vbs结束进程代码_物联网学习教程—Linux系统编程之进程控制
Linux系统编程之进程控制 一.结束进程 首先,我们回顾一下 C 语言中 continue, break, return 的作用: continue: 结束本次循环 break: 跳出整个循环,或跳 ...
最新文章
- centos7添加Oracle到指定IP,Oracle Linux 7.1 增加网卡及IP配置
- 科研|Science回应中国燃料电池研究“造假”:发函重点关注,之前撤稿率100%
- 老男孩老师的博客地址 - 转自devops1992
- jQuery实现新浪微博自动底部加载的方法
- 删除360浏览器新标签页内的热词导航
- IOS开发之----常用函数和常数--秀清
- 生成器作为(快速失败)状态机
- Verilog中fork...join 的用法
- LVM逻辑卷管理基本概念及原理
- python嵌套循环_关于Python嵌套循环代码优化
- TypeScript完全解读(26课时)_9.TypeScript完全解读-TS中的类
- 《Windows游戏编程大师技巧》二、Windows编程模型
- 小象机器学习(邹博老师)学习笔记
- CISSP考试经验分享
- 风险预测模型_5分+整合多中心临床样本构建5分子胰腺癌预后模型
- vue POST 请求方式下载excel文件
- 新学期新FLAG,我与你共青春
- Java中Xml解析详解 DOM、SAX、JDOM、DOM4J
- 南方人,在北京,夏秋冬
- 简述什么是图灵机_图灵机简介和原理分析
热门文章
- TransE论文剩余部分
- 多重纹理——像素着色器
- 音视频SDK包-远程网络视频会议-在线远程教育-屏幕共享-电子白板-影音共享-在线直播等等都可以用
- linux怎么配置yolo环境,【项目实战】 YOLOv5 安装配置及简单使用
- Source Insight4.0结构体使用宏定义之后,成员没关联?
- Qt-使用QString输出数字上标(不要再用x2或x^2表示平方啦)
- 基于Android的便签设计(二)
- AssestsStdio使用例--提取游戏《废墟图书馆》内的素材
- 张果老能是鸿蒙时期一蝙蝠,历史书中张果老的故事,一只蝙蝠的传奇
- SSM框架项目:米米商城后台管理系统