visudo 13070 root 3uW REG 3,3 640 12835419 /etc/sudoers
####
fcntl_loc 13091 root 3w REG 3,3 640 12835419 /etc/sudoers
####
#!/usr/bin/perl
use Fcntl qw(:DEFAULT :flock);
use Errno qw(EAGAIN);
use strict;
use warnings;
@ARGV == 1 or die "usage: $0 \n";
print "opening $ARGV[0]...\n";
open my $fh, ">>$ARGV[0]" or die "open:$!\n";
my $results = pack( "sslll", &F_WRLCK, 0, 0, 0, 0);
print "locking $ARGV[0]...\n";
my $rc;
while (1)
{
$rc = fcntl($fh, F_SETLK, $results);
last if ($! != EAGAIN || (defined $rc && $rc == 0));
print "sleeping...\n";
sleep 5;
print "trying again...\n";
}
if ((!defined $rc) || $rc != 0) { die "fcntl:$!\n" };
print "looping forever...\n";
sleep 64*64;