spolupraca: NFS server Windows <-> NFS klient UNIX

Kilian Igor Igor.Kilian na infogas.sk
Čtvrtek Únor 23 09:57:08 CET 2006


Takze som sa dopracoval opat dalej. Script je nasledujuci:

#!/usr/bin/perl -w
use Fcntl;
open(LOCKFILE, ">>file_nfs_lock") || die "cant open lockfile";
$lock = pack('s s l l s', &F_WRLCK, 0, 0, 0, 0);
fcntl(LOCKFILE, &F_SETLK, $lock) || die "another process has the lock";
$unlock = pack('s s l l s', &F_UNLCK, 0, 0, 0, 0);
fcntl(LOCKFILE, &F_SETLK, $unlock) || die "problem with unlocking the
file";
close(LOCKFILE);

Problem je ten, ze NFS server hlasi lock v poriadku, ale unlock je
so statusom failure. Perl chybu nehlasi. Zle uvolnujem zamok? Robim
nieco zle?

Ak som vynechal uvolnenie zamku:
#!/usr/bin/perl -w
use Fcntl;
open(LOCKFILE, ">>file_nfs_lock") || die "cant open lockfile";
$lock = pack('s s l l s', &F_WRLCK, 0, 0, 0, 0);
fcntl(LOCKFILE, &F_SETLK, $lock) || die "another process has the lock";
close(LOCKFILE);

Tak NFS server aj tak hlasi pri uvolneni unlock failure. Je chyba na
serveri
NFS, alebo v scripte?

Igor

> -----Original Message-----
> From: Kilian Igor [mailto:Igor.Kilian na infogas.sk] 
> Sent: Thursday, February 23, 2006 8:18 AM
> To: linux na linux.cz
> Subject: RE: spolupraca: NFS server Windows <-> NFS klient UNIX
> 
> Dik. pozrel som na to, ale neviem spravit perlovy skript
> s pouzitim fcntl. Dozvedel som sa:
> Perl uses the flock function, which may use flock,
> lockf, or fcntl under the hood.
> 
> Takze som pouzil podla rady na zaciatku scriptu:
> use Fcntl qw(:flock);
> (to by malo zabezpecit, ze flock pouziva na zamknutie fcntl)
> 
> Bohuzial nefunguje to. Prosim napiste mi taky perlovy
> script, ktory skutocne pouzije na zamknutie fcntl. Nech
> viem aspon jednu stranu problemu odhalit (cize ci je
> problem na UNIXe, alebo WIN). Ak to mam dobre, tak tiez
> prosim o potvrdenie. Dakujem.
> 
> Igor


Další informace o konferenci Linux