簡體   English   中英

bash flock:為什么200?

[英]bash flock: Why 200?

關於那個線程: bash flock:如果無法獲取鎖定則退出

如果有人能向我解釋'200'代表什么,我將不勝感激。

我已經閱讀了關於flock的內容,如果要指定文件描述符,似乎有200個,但這個數字有什么好處呢?

沒有什么特別的數字200.它恰好是flock命令手冊頁中使用的例子; 它碰巧是一個很大的數字,所以它不太可能與您在腳本中打開的任何其他文件的文件描述符沖突。

在您的評論中,您詢問:

( 
  flock -e 200
  echo "In critical section"
  sleep 5 
) 200>/tmp/blah.lockfile 
echo "After critical section"

括號()創建一個子shell; 一個與父進程分開的新進程。 200>/tmp/blah.lockfile導致該進程在文件描述符200上打開/tmp/blah.lockfile進行寫入。括號內的命令在該shell中執行。

flock -e 200獲取文件描述符200指向的文件的獨占鎖。獨占鎖意味着試圖獲取該文件鎖的任何其他人(獨占或共享)將阻塞(等待)直到此鎖定為止如果他們達到超時或被要求不阻止,則放棄或失敗。 因此,在子shell的主體的其余部分( echosleep命令)中,鎖將由該子shell保持,並且沒有其他人可以獲得該鎖。 子shell完成后,文件將被關閉並放棄鎖定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM