【发布时间】:2019-10-24 00:39:01
【问题描述】:
我正在查看羊群文档:
http://www.tutorialspoint.com/unix_system_calls/flock.htm
https://linux.die.net/man/1/flock
我有这个:
#!/usr/bin/env bash
temp_dir="$HOME/temperton/tmp";
mkdir -p "$temp_dir"
(
flock -x "$temp_dir/a"
echo '111'
) &
(
flock -x "$temp_dir/a"
echo '222'
) &
但是当我运行它时,我得到了这个错误:
flock: bad file descriptor: '/home/ratt/temperton/tmp/a' flock: 111 bad file descriptor: '/home/ratt/temperton/tmp/a' 222
【问题讨论】:
-
flock 不是这样工作的。您需要同时提供要锁定的文件和命令。请查看this 手册页,其中包含使用示例。
-
通过 not 包含要运行的命令,您是在告诉它执行基于文件描述符的锁定,但是您忘记了一些非常重要的事情工作。所以,是的,再次查看手册页中的示例。
标签: bash shell unix mutex flock