【发布时间】:2010-07-29 08:48:08
【问题描述】:
我正在开发一个使用共享内存的程序。所述程序的多个实例将连接到现有程序或重新创建它,并在没有其他进程时将其返回给操作系统,或者只是将其分离并终止。我想用一个简单的计数器来跟踪有多少进程在使用它。
我正在使用atexit() 函数进行清理,但是,afaik 在收到 SIGKILL 信号后,进程不会进行任何清理,所以如果这些进程中的任何一个没有正常终止,我可能永远无法清理内存。
有没有办法指定在 SIGKILL 信号之后要做什么?我可能会编写一些类似于计时器的机制来检查进程是否仍然存在,但如果有其他方法,我真的很想避免它。
【问题讨论】: