Команда Flock в AIX - PullRequest
0 голосов
/ 26 мая 2018

когда я пытался использовать flock в AIX, я обнаружил, что flock не найден.Системный администратор установил пакет util-linux, но сказал, что исполняемый файл flock недоступен в AIX.Пожалуйста, дайте мне знать, как получить команду flock в AIX ??

Ответы [ 2 ]

0 голосов
/ 28 мая 2018

Вы можете скомпилировать flock.c из пакета util-linux, но он не будет обладать всей функциональностью версии linux:

  1. flock -n <handle> не работает, потому чтов AIX дочерние и родительские процессы не разделяют блокировки файлов.

  2. С опцией -w <timeout> он будет ждать вечно (если время ожидания не равно нулю), так как flock(2) в AIX не возвращается с 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"

Вот версия стада, которую я скомпилировал из источника: http://web.axelero.hu/lzsiga/flock.tgz

0 голосов
/ 26 мая 2018

Этот пакет, я думаю, имеет команду flock.http://www.perzl.org/aix/index.php?n=Main.Util-linux

...