首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux中的资源清理

Linux中的资源清理
EN

Stack Overflow用户
提问于 2011-11-15 15:25:24
回答 1查看 789关注 0票数 2

当进程(进程A)终止时,我如何清理它所分配的所有资源?当进程A使用另一个进程提供的服务时,它可以在另一个进程空间中分配资源(A将使用IPC访问另一个进程提供的服务)。

是否有任何标准机制/框架可供使用?我在Linux环境下处理运行。

谢谢你,邓

EN

回答 1

Stack Overflow用户

发布于 2011-11-15 18:07:48

一些资源会自动清理。在堆栈或堆、套接字和文件描述符、信号量操作(如果使用SEM_UNDO)上分配的内存。

对于您在问题中含糊提到的场景(使用IPC从另一个进程B访问服务),您需要:

  1. 检测进程B
  2. 手工清理的情况。

解决#1的第一个主要方法是进程B,可以轮询进程A的PID存在。显然不太理想。更好的解决方案是使用IPC方法检测连接消失的另一面(例如,TCP套接字)。

如果与网络上的两台计算机相比,进程A和进程B之间的并行,一个典型的解决方案是,进程B在进程A的每个API调用之后清理,或者破坏进程A的连接列表,如果进程A在给定的时间之后没有收到进程A的消息,它最终会超时和清理进程A的资源。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8138724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档