是否真的有必要在非托管断电之前调用 /bin/sync 两次?

Jer*_*ner 3 linux ext4 synchronization

我的公司销售一种“嵌入式设备”,它是在内部 SSD 上实现为带有 ext4 的无头 Linux 机器。我们的一些用户习惯于在此框上执行“保存当前设置”,然后在设备报告保存完成后立即切断设备电源(即两秒钟后)。这会导致保存的文件偶尔损坏,因为在断电之前数据不会总是刷新到 SSD。所以我调整了我的软件以在写入文件后立即运行 /bin/sync (在关闭文件句柄之后但在通知用户保存完成之前)。这似乎解决了这个问题,但我的同事说对 /bin/sync 的一次调用是不够的,为了真正安全,我应该连续运行两次 /bin/sync。

对我来说,这听起来像是偏执狂......也许是早期版本的 Linux 或 unix 的习惯,它们的同步实用程序不能可靠地工作。他的建议是否有价值,还是只调用一次 /bin/sync 就足够了?

vor*_*aq7 7

这个链接总结得很好——一个电话就sync足够了。多次这样做绝对是一种保留(我坚持自己的做法),但是如果您以编程方式进行操作,您将一无所获 - 这是您输入真正要进行的那 5 次击键所需的延迟为了。

当然,真正的答案是正式阻止强行使用电源,而是提供告诉用户使用的关机功能,但您将始终必须处理插拔者...