Ash*_*rpe 0 bash shell synchronization
在 shell 脚本中,第二个 cmd 会等到第一个 cmd 完全执行(即同步文件夹的情况下)吗?
例如:
cmd1 sync folder1
cmd2 cp folder1 to folder2
Run Code Online (Sandbox Code Playgroud)
同步完成后cmd2会在这里运行吗?如果同步失败怎么办?
来自http://linux.die.net/man/8/sync:
在Linux上,sync仅保证调度脏块进行写入;实际上可能需要很短的时间才能最终写入所有块。考虑到这一点,reboot(8)和halt(8)命令在调用sync(2)后休眠几秒钟。
(我强调。)你也许也应该这样做。显然,必要的等待时间没有上限,也无法(至少对于简单用户而言)验证磁盘是否已处理排队的命令,这有点令人不安。
当然,除了sync之外,所有类型的命令都存在这个问题。邮件可能尚未发送,打印作业可能仍在排队等。另外,正如切普纳所说,任何分叉服务器或其他后台进程(隐式地,没有&)的命令都将在进程仍在运行时返回。
| 归档时间: |
|
| 查看次数: |
746 次 |
| 最近记录: |