当我在AIX框中尝试使用flock时,我发现没有找到flock。系统管理员安装了util-linux软件包,但他说在Linux中没有flock可执行文件。请告诉我如何在AIX中获取flock命令?
答案 0 :(得分:1)
您可以从包flock.c
编译util-linux
,但它不具备Linux版本的全部功能:
flock -n <handle>
不起作用,因为在AIX上,子进程和父进程不共享文件锁。
使用选项-w <timeout>
它将永远等待(如果超时为非零),因为AIX上的flock(2)
在计时器触发时不会以errno = EINTR返回(SIGALRM )。
这是一个适用于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