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.结束进程的正确方式相关推荐

  1. linux wait函数头文件_第五十八章、linux中的3种正常结束进程的方式你都了解么...

    在前两章中我们了解了创建进程,这一章我们来了解下,在linux下怎么结束进程. 在linux中,有3种正常结束进程的方法和2种异常终止的方法: 1. 正常结束: a. 在main函数中调用return ...

  2. C语言文件读取结束判断正确方式

    前言 对于在文件操作时,怎么样判断文件是否结束,以feof来判断文件读取结束是否正确? 一.MSDN对feof的介绍? 对与返回值的描述是: feof函数在第一次读取操作后返回一个非零值,该操作试图读 ...

  3. linux结束进程_生人勿近之Linux里养僵尸

    Linux里养僵尸是怎么回事呢?Linux相信大家都很熟悉,但是Linux里养僵尸是怎么回事呢,下面就让小编带大家一起了解吧. - 1 - 上一篇挖了个 SIGHUP 的坑,这篇试着填一下. 之前在& ...

  4. php与go服务之间调用,PHP调用Go服务的正确方式 - Unix Domain Sockets

    原标题:PHP调用Go服务的正确方式 - Unix Domain Sockets 作者:枕边书 链接:http://www.cnblogs.com/zhenbianshu/p/7265415.html ...

  5. c/c++ 结束进程的方法

    1.使用ExitProcess()结束进程      进程只是提供了一段地址空间和内核对象,其运行时通过在其地址空间内的主线程来体现的.当主线程的进入点函数返回时,进程也就随之结束.这种进程的终止方式 ...

  6. 使用ExitProcess()结束本进程、TerminateProcess 结束进程

    进程只是提供了一段地址空间和内核对象,其运行时通过在其地址空间内的主线程来体现的.当主线程的进入点函数返回时,进程也就随之结束.这种进程的终止方式是进程的正常退出,进程中的所有线程资源都能够得到正确的 ...

  7. 使用ExitProcess()结束本进程,TerminateProcess()结束进程

    进程只是提供了一段地址空间和内核对象,其运行时通过在其地址空间内的主线程来体现的.当主线程的进入点函数返回时,进程也就随之结束.这种进程的终止方式是进程的正常退出,进程中的所有线程资源都能够得到正确的 ...

  8. java 中启动线程的正确方式

    启动线程的正确方式是运行Thread类中的start()方法,使用run()方法只不过是运行了一个普通方法而已. 线程对象在初始化之后,由当前线程(主线程)执行的start()方法,然后去告诉jvm虚 ...

  9. vbs结束进程代码_物联网学习教程—Linux系统编程之进程控制

    Linux系统编程之进程控制 一.结束进程 首先,我们回顾一下 C 语言中 continue, break, return 的作用: continue: 结束本次循环 break: 跳出整个循环,或跳 ...

最新文章

  1. centos7添加Oracle到指定IP,Oracle Linux 7.1 增加网卡及IP配置
  2. 科研|Science回应中国燃料电池研究“造假”:发函重点关注,之前撤稿率100%
  3. 老男孩老师的博客地址 - 转自devops1992
  4. jQuery实现新浪微博自动底部加载的方法
  5. 删除360浏览器新标签页内的热词导航
  6. IOS开发之----常用函数和常数--秀清
  7. 生成器作为(快速失败)状态机
  8. Verilog中fork...join 的用法
  9. LVM逻辑卷管理基本概念及原理
  10. python嵌套循环_关于Python嵌套循环代码优化
  11. TypeScript完全解读(26课时)_9.TypeScript完全解读-TS中的类
  12. 《Windows游戏编程大师技巧》二、Windows编程模型
  13. 小象机器学习(邹博老师)学习笔记
  14. CISSP考试经验分享
  15. 风险预测模型_5分+整合多中心临床样本构建5分子胰腺癌预后模型
  16. vue POST 请求方式下载excel文件
  17. 新学期新FLAG,我与你共青春
  18. Java中Xml解析详解 DOM、SAX、JDOM、DOM4J
  19. 南方人,在北京,夏秋冬
  20. 简述什么是图灵机_图灵机简介和原理分析

热门文章

  1. TransE论文剩余部分
  2. 多重纹理——像素着色器
  3. 音视频SDK包-远程网络视频会议-在线远程教育-屏幕共享-电子白板-影音共享-在线直播等等都可以用
  4. linux怎么配置yolo环境,【项目实战】 YOLOv5 安装配置及简单使用
  5. Source Insight4.0结构体使用宏定义之后,成员没关联?
  6. Qt-使用QString输出数字上标(不要再用x2或x^2表示平方啦)
  7. 基于Android的便签设计(二)
  8. AssestsStdio使用例--提取游戏《废墟图书馆》内的素材
  9. 张果老能是鸿蒙时期一蝙蝠,历史书中张果老的故事,一只蝙蝠的传奇
  10. SSM框架项目:米米商城后台管理系统