如果使用SIGKILL终止进程,它对内存映射文件所做的更改是否会刷新到磁盘?我假设如果操作系统确保在通过SIGKILL终止进程时将内存映射文件刷新到磁盘,那么它也将使用其他终止信号(SIGABRT,SIGSEGV等等)来执行此操作。
答案 0 :(得分:16)
这取决于是否使用私有修改(MAP_PRIVATE)打开内存映射文件(MAP_SHARED)。如果私有,那么没有;修改不会写回磁盘。如果共享,则内核缓冲池包含已修改的缓冲区,并且这些缓冲池将在适当的时候写入磁盘 - 无论死亡原因如何。
答案 1 :(得分:0)
我自己提出了一个类似的问题,然后在我对答案不满意时跟进了演示代码。见mmap, msync and linux process termination