我们有基于BBB的定制板,内核3.12运行在上面。
我对umount和& sync有疑问。
假设一个脚本正在汇总一个分区,它是否需要在sync之前运行umount命令来完成挂起的写操作。?
发布于 2017-02-18 11:44:46
不,您不需要在sync之前运行umount。umount将在实际卸载文件系统之前完成所有挂起的写操作。如果某些进程仍在使用文件系统(例如当前工作目录),它也将拒绝卸载。
编辑:卸载主要在fs/namespace.c中处理。您不会在那里找到对sync的任何显式调用,但是您将看到沿着“标记这个挂载点以便卸载,拒绝对其上的任何进一步操作,如果完成了所有操作,卸载”这一行的注释。您还可以看到显式的在用检查。
您可以轻松地测试自己,umount确实完成了所有挂起的操作:安装一些缓慢的USB棒,将一个大文件复制到它,并在cp之后直接调用umount。在看到一个新的提示符之前,需要几秒钟的时间,如果在另一个窗口中运行dstat等,您将看到仍在进行的写操作。这与输入sync的行为完全相同。
https://unix.stackexchange.com/questions/345917
复制相似问题