Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Artem Chuprina                       2:5020/400     10 Feb 2005  15:08:05
 To : Konstantin Petrenko
 Subject : Re: flock
 -------------------------------------------------------------------------------- 
 
 Konstantin Petrenko -> All  @ Thu, 10 Feb 2005 17:18:16 +0300:
 
  KP>   Пишy паpy скpиптиков:
  KP> === 1.pl ===
  KP> #!/usr/bin/perl
  KP> use Fcntl ':flock';
 
  KP> $pid = $$;
 
  KP> open(FH,">/var/run/tt.pid") or die "$!\n";
  KP> print FH $pid;
 
  KP> if(!flock(FH,LOCK_EX)){
  KP>   print "$!\n";
  KP> }
 
  KP> sleep(30);
 
  KP> flock(FH,LOCK_UN);
  KP> close(FH);
  KP> === 1.pl ===
 
  KP> И соответственно втоpой:
  KP> === 2.pl ===
  KP> #!/usr/bin/perl
 
  KP> open(FH,">>/var/run/tt.pid");
  KP> print FH " not working!!\n";
  KP> close(FH);
  KP> === 2.pl ===
 
  KP> В пеpвой консоли запyскаю 1.pl во втоpой 2.pl. 2.pl спокойно отpабатывает и
  KP> в файлик tt.pid спокойно дописывает " not working!!". В то вpемя как пеpвый
  KP> скpипт
  KP> все еще висит в консоли.
 
 Hу да.  RTFM: Стивенс, Advanced Programming in UNIX Environment.
 Впрочем, про то, что блокировки advisory, в perldoc -f flock, кажется,
 было сказано.
 
 -- 
 Artem Chuprina
 RFC2822: <ran{}ran.pp.ru> Jabber: ran@jabber.ran.pp.ru
 
 P.S. Выводить в файл pid тоже надо _после_ блокировки.
 
 P.P.S. А вот unlock непосредственно перед close делать никакого смысла
 нет.  Как, впрочем, и close перед завершением процесса.  Более того,
 иногда это вредно.
 --- ifmail v.2.15dev5.3
  * Origin: Leninsky 45 home network (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 flock   Konstantin Petrenko   10 Feb 2005 18:18:16 
 Re: flock   Artem Chuprina   10 Feb 2005 15:08:05 
 flock   Konstantin Petrenko   11 Feb 2005 12:09:32 
 Re: flock   Artem Chuprina   11 Feb 2005 14:47:37 
 flock   Dmitry Grebeniuk   11 Feb 2005 14:19:56 
 Re: flock   Artem Chuprina   11 Feb 2005 17:16:30 
Архивное /ru.perl/2560689947035.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional