AIX中的Flock命令

时间:2018-05-26 09:37:31

标签: shell aix flock

当我在AIX框中尝试使用flock时,我发现没有找到flock。系统管理员安装了util-linux软件包,但他说在Linux中没有flock可执行文件。请告诉我如何在AIX中获取flock命令?

2 个答案:

答案 0 :(得分:1)

您可以从包flock.c编译util-linux,但它不具备Linux版本的全部功能:

  1. flock -n <handle>不起作用,因为在AIX上,子进程和父进程不共享文件锁。

  2. 使用选项-w <timeout>它将永远等待(如果超时为非零),因为AIX上的flock(2)在计时器触发时不会以errno = EINTR返回(SIGALRM )。

  3. 这是一个适用于AIX的示例:

    #!/bin/sh
    
    if [ "x$1" = x-locked ]; then
        shift
    else
        echo "Trying flock on 'flock.tmp'"
        if ! flock --verbose -w 0 flock.tmp "$0" -locked "$@"; then 
            echo 'Flock failed'
        fi
        exit
    fi
    
    echo "After flock -- sleeping 15 sec"
    sleep 15
    echo "Exiting"
    

    以下是我从源代码编译的flock版本:http://web.axelero.hu/lzsiga/flock.tgz

答案 1 :(得分:0)

我觉得这个包有flock命令。 http://www.perzl.org/aix/index.php?n=Main.Util-linux