非托pipe关机之前真的有必要调用/ bin / sync两次吗?

我的公司销售一个“embedded式设备”,这个embedded式设备是作为一个内置SSD的ext4的无头Linux系统实现的。 我们的一些用户习惯在这个盒子上进行“保存当前设置”,一旦本机报告保存完成(即两秒钟后),就切断电源。 这导致了保存文件的偶然损坏,因为在断电之前数据不会总是被刷新到SSD。 所以我调整了我的软件,在写入文件之后立即运行/ bin / sync(在closures文件句柄之后,但在通知用户保存完成之前)。 这似乎解决了这个问题,但我的同事说,一个调用/ bin /同步是不够的,这是非常安全的,我应该连续运行/ bin / sync两次。

这听起来像对我偏执狂…也许从早期版本的Linux或UNIX的同步实用程序无法正常工作的习惯。 他的build议是有价值的,还是应该打电话给/ bin / sync就足够了?

这个链接总结得非常好 – 一次sync调用就足够了。 多做一次肯定是一个搁置(而且我坚持自己),但是如果你是以编程的方式来做的话,那么你没有得到任何东西 – 这是你input5个按键的延迟,你真的要去对于。

当然, 真正的答案是正式阻止放弃权力,而是提供一个用户被告知使用的closuresfunction,但是你总是必须处理插件。