[英]bash flock an output file
如果多個進程可能正在寫入同一個輸出文件,那么將輸出文件本身而不是單獨的鎖定文件聚集在一起是否安全?
例如,這安全嗎?
outputFile=output.dat
exec 200>>"$outputFile"
flock -e 200
grep -i error "$1" >> "$outputFile"
flock -u 200
我在 flock 中找到的所有示例都使用單獨的鎖定文件。
例如
outputFile=output.dat
lockFile=/var/tmp/output.dat
exec 200>"$lockFile"
flock -e 200
grep -i error "$1" >> "$outputFile"
flock -u 200
是的,在給定的特定(狹義)使用模式內,您提出的建議是安全的。
O_TRUNC
打開鎖文件。rm
一樣,完全刪除數據文件——確保任何新創建的版本獲得不同的 inode——同時持有鎖。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.