在shell中,可以使用 flock
命令對文件進行加鎖操作。flock
命令提供了對文件或目錄進行獨占鎖定的功能,防止其他進程同時對文件進行讀寫操作。
flock -x file.lock your_command
其中,file.lock
是用來存放鎖定信息的文件,your_command
是要執行的命令。在執行 flock
命令時,會嘗試獲取 file.lock
文件的獨占鎖,如果成功獲取鎖,則會執行 your_command
命令;如果獲取鎖失敗,則會等待直到獲取到鎖為止。
另外,還可以使用 flock
命令來對腳本中的臨界區進行加鎖,確保同一時刻只有一個進程可以執行該腳本中的關鍵部分。
(
flock -x 200
# Critical section
) 200>/var/lock/mylockfile
在這個例子中,( )
中的代碼塊表示臨界區,flock -x 200
會獲取文件描述符為 200 的文件的獨占鎖。這樣可以確保同一時刻只有一個進程可以執行臨界區中的代碼。