我正在查看羊群文档:
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
答案 0 :(得分:0)
'flock' 是最有用的,然后使用文件描述符进行操作。如果锁定在文件/目录名上,您还应该提供一个要执行的命令。我想,在内部它的工作原理如下:
exec 4<$name # open
flock 4
<your_command_here>
exec 4<&- # close
在你的例子中,你可以用
替换锁 flock $temp_dir sleep 5s
检查差异。