api*_*411 0 linux shell-script lock
我有一个代码,其中使用了以下行,因为我被卡住了。我在网上搜索过,但不太了解。刚刚了解了以下基本信息集
lockfile 可用于创建一个或多个信号量文件。如果 lockfile 不能创建所有指定的文件(以指定的顺序),它会等待 sleeptime(默认为 8)秒并重试最后一个没有成功的文件。
任何人都可以让我知道理解。提前致谢 注意:LockFile 是一个路径变量
if lockfile -1 -r0 ${LockFile}
then
Run Code Online (Sandbox Code Playgroud)
重点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
Run Code Online (Sandbox Code Playgroud)
一次只有一个脚本实例可以执行该stuff; more stuff
部件。如果您启动第二个实例,则第二个实例将等待第一个实例完成(更准确地说,直到它删除锁定文件),直至选项给出的某个最大时间。-TIME
使用参数-r0
,第二个实例根本不等待:它立即转到else
分支。所以你不能运行这个脚本的并发实例(或者脚本的这一部分,如果这只是一个更大脚本的一部分)。