如何在Linux上使用羊群

时间:2019-06-09 06:07:45

标签: bash shell unix mutex flock

我正在查看羊群文档:

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

1 个答案:

答案 0 :(得分:0)

'flock' 是最有用的,然后使用文件描述符进行操作。如果锁定在文件/目录名上,您还应该提供一个要执行的命令。我想,在内部它的工作原理如下:

    exec 4<$name # open
    flock 4
    <your_command_here>
    exec 4<&-    # close

在你的例子中,你可以用

替换锁
    flock $temp_dir sleep 5s

检查差异。