![脚本中lockfile的使用及其意义](https://linux22.com/image/8580/%E8%84%9A%E6%9C%AC%E4%B8%ADlockfile%E7%9A%84%E4%BD%BF%E7%94%A8%E5%8F%8A%E5%85%B6%E6%84%8F%E4%B9%89.png)
我有一个代码,其中使用了下面的行,因此我被卡住了。我已经在网上搜索过,但不太理解。只是了解了如下的基本信息集
lockfile 可用于创建一个或多个信号量文件。如果lockfile无法创建所有指定的文件(按指定的顺序),它将等待睡眠时间(默认为8)秒并重试最后一个未成功的文件。
任何人都可以让我知道这一点吗?预先感谢注意:LockFile 是一个路径变量
if lockfile -1 -r0 ${LockFile}
then
答案1
的目的lockfile
是保护某些命令的执行锁(也称为互斥锁)。也就是说,考虑以下程序:
if lockfile "$LockFile"; then
stuff
more stuff
rm -f "$LockFile"
else
echo 1>&2 "Fatal error: another process has been keeping the lock for too long or the lock file is inaccessible"
exit 3
fi
一次只能有一个脚本实例执行该stuff; more stuff
部分。如果启动第二个实例,那么第二个实例将等待第一个实例完成(更准确地说,直到删除锁定文件),直到该选项指定的某个最大时间。-TIME
使用参数-r0
,第二个实例根本不等待:它立即转到分支else
。因此,您无法运行此脚本的并发实例(或脚本的这一部分,如果这只是更大脚本的一部分)。