日期:2014-05-16  浏览次数:20578 次

详谈 UNIX 环境进程异常退出
  • 进程异常退出

    进程退出意味着进程生命期的结束,系统资源被回收,进程从操作系统环境中销毁。进程异常退出是进程在运行过程中被意外终止,从而导致进程本来应该继续执行的任务无法完成。

    进程异常退出可能给软件用户造成如下负面影响:

  • 软件丧失部分或者全部功能性,无法完成既定任务。
  • 如果进程正在处理数据,可能造成数据损坏。
  • 如果是关键软件服务,必然导致服务异常中止 , 造成无法预计的损失。
  • 进程异常退出或者进程崩溃 , 也会给软件用户造成恐慌和困惑。

进程异常退出是生产环境中经常遇到的问题,它会给软件用户造成很多负面影响,所以软件开发者应当避免这种问题的出现。但是导致进程异常退出的场景和原因是多种多样的,甚至令人琢磨不透。

本文将所有可能造成进程异常退出的原因归结为两类。系统地将其分类,使读者对此类问题能有清晰的认识。对每类情况详细论述,分析根本原因,然后分析了这两类情况之间的联系,也就是信号与进程异常退出的紧密关系。希望您读完此文后,能对此类问题有更加全面、深入的理解,对调试此类问题也能有所帮助,写出更加可靠、更加稳定性、更加健壮的软件。

首先我们来看导致进程异常退出的这两类情况:

  • 第一类:向进程发送信号导致进程异常退出;
  • 第二类:代码错误导致进程运行时异常退出。

第一类:向进程发送信号导致进程异常退出

信号

UNIX 系统中的信号是系统响应某些状况而产生的事件,是进程间通信的一种方式。信号可以由一个进程发送给另外进程,也可以由核发送给进程。

信号处理程序: