flock
sangat bagus untuk ini. Anda dapat menggunakan flock
di pembungkus skrip shell Anda, gunakan pada baris perintah, atau gabungkan ke dalam skrip Anda sendiri.
Hal terbaik tentang flock
adalah saat menunggu, ia tidak menunggu dalam lingkaran sibuk.
Itu juga selalu membersihkan kunci saat proses Anda keluar / flock
keluar.
Metode berdasarkan pembuatan file/direktori atom dapat dikunci jika proses keluar tanpa pembersihan (atau jika ada kepanikan kernel, atau kegagalan daya, ...).
Dengan flock
, kernel Linux melakukan pembersihan.
Dari manual,
(
flock -s 200
# ... commands executed under lock ...
) 200>/var/lock/mylockfile
Dalam formulir ini, Anda dapat membungkus blok kode tertentu dalam skrip shell Anda.
Atau Anda dapat menjalankannya seperti ini,
/usr/bin/flock /tmp/lockfile command
Jika Anda tidak ingin memblokir/menunggu tanpa batas waktu, Anda dapat menentukan batas waktu:
-w --timeout <secs> wait for a limited amount of time
Atau cukup gunakan argumen yang tidak memblokir:
-n --nonblock fail rather than wait