|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 16 Apr 2004 14:08:18 To : Konstantin Tokar Subject : Re: блокировак повторного запуска -------------------------------------------------------------------------------- Konstantin Tokar -> Andrei Baranov @ Thu, 15 Apr 2004 19:45:39 +0000 (UTC): >> А как вам такой способ? >> Эксклюзивно блокируется сам скрипт, если получилось спокойно работаем, >> сменив блокировку на неэксклюзивную. Если нет - считаем, что скрипт >> уже >> запущен и успел >> заблокироваться раньше. >> use FindBin qw($RealScript); >> use Fcntl ':flock'; >> open(SCRIPT,$RealScript) || die "Can't open $RealScript: $!\n"; >> flock($file,LOCK_EX|LOCK_NB) || die "Can't run: $RealScript already >> running!\n"; >> Достоинства - не надо читать/записывать/создавать файл, не надо >> проверять >> пид. Соответственно отпадают связанные с этим race condition, проблемы >> с >> правами, переносимостью и безопасностью. >> /term KT> Интересно, если этот скрипт лежит на NFS, что будет? Или ещё где-то? Если на нормальном NFS, то будет работать lockd. Оно, конечно, вопрос о том, не надо ли запустить тот же скрипт на другой машине, остается открытым, но в изначальной постановке задачи этого не было. -- Artem Chuprina RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/122.256, ICQ: 13038757 --- ifmail v.2.15dev5.3 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/25606da0f087c.html, оценка из 5, голосов 10
|