我的例子是 Minecraft。在 Linux 上运行 Bukkit 时,我可以删除或更新 /plugins 文件夹中的 .jar 文件,只需运行“重新加载”命令即可。
在 Windows 中,我必须关闭整个服务器进程,因为当我尝试删除或替换它时,它会抱怨当前正在使用 .jar 文件。
这对我来说很棒,但为什么会发生?Linux 在这里做了什么不同的事情?
如果我有命令
$ ./script >> file.log
Run Code Online (Sandbox Code Playgroud)
被调用两次,第二次调用发生在第一个结束之前,会发生什么?
第一次调用是否获得了输出文件的排他锁?如果是这样,第二个脚本是否在尝试写入时失败,或者 shell 是否接受输出(允许脚本结束)并抛出错误?
或者日志文件被写入两次?