【发布时间】:2020-07-12 10:38:20
【问题描述】:
set -e
pidfile=/data/demo3
# lock it
exec 200<>$pidfile
flock -n 200 || exit 1
# my code
echo "hello"
sleep 20
echo "bi"
我有一个文本文件,多个进程可以同时访问这个文本文件。所以我使用flock 命令来确保并发问题。所以一个进程在时间锁定一个文件 = T1 并且其他进程想要同时锁定同一个文件 = T1 那么这不会导致哪个进程首先锁定文件或者这种情况最终会陷入死锁的问题吗? 还是我错过了什么?
如果我正在使用这段代码并且我正在锁定这个 demo3 文件,同时另一个进程想要锁定这个文件,那么这不会导致问题吗?
【问题讨论】:
-
欢迎来到 SO。您能否包含一些现有代码来说明您的担忧?
-
我已经添加了。您现在可以检查它,这将是一个很大的帮助。我正在尝试在这里做一个项目,我的截止日期快到了。
-
这个进程和其他进程对
/data/demo3文件做了什么?它们也是 bash 脚本,还是其他程序?其他脚本/程序是否一直使用flock? -
它们是 bash 脚本,它们在其中聚集以锁定这个 demo3.json 文件。假设同一脚本同时由 2 个终端运行,这可能是个问题吗?
标签: bash shell locking deadlock flock