加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

共享POSIX对象在进程结束/死亡时进行清理

发布时间:2020-12-15 21:37:13 所属栏目:安全 来源:网络整理
导读:有没有办法执行POSIX共享同步对象清理,特别是在进程崩溃时?锁定POSIX信号量解锁是最理想的事情,但自动“收集”队列/共享内存区域也会很好.值得关注的另一件事是我们通常不能使用信号处理程序,因为SIGKILL无法捕获. 我只看到一个替代方案:一些外部守护进程
有没有办法执行POSIX共享同步对象清理,特别是在进程崩溃时?锁定POSIX信号量解锁是最理想的事情,但自动“收集”队列/共享内存区域也会很好.值得关注的另一件事是我们通常不能使用信号处理程序,因为SIGKILL无法捕获.

我只看到一个替代方案:一些外部守护进程接受订阅,并且’keep-alive’请求作为监视程序工作,因此没有关于某个对象的通知,它可以根据注册的策略关闭/解锁对象.

有没有更好的选择/主张?我之前从未认真对待POSIX共享对象(套接字足以满足我的所有需求,而且我的意见更有用)并且我没有找到任何适用的文章.我很乐意在这里使用插座但不能因为历史原因.

解决方法

您可以使用文件锁定来协调您的流程,而不是使用信号量.文件锁的重要优势在于,如果进程终止,它们将被释放.您可以将每个信号量映射到共享文件中的一个字节的锁定,并知道锁定将在退出时释放;在大多数版本的unix中,你锁定的字节甚至不必存在.在Marc Rochkind的书“高级Unix编程”第1版中有代码,但不知道它是否在最新的第2版中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读