The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Как правильно создавать lock-файл (perl lock)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: perl, lock,  (найти похожие документы)
Date: Thu, 01 Apr 2004 12:31:32 +0600 From: Artem Chuprina <ran+news@ran.pp.ru> Newsgroups: ftn.ru.perl Subject: Как правильно создавать lock-файл AVY> my $me = basename($0); AVY> $pidfile = "/var/run/$me.pid"; AVY> if (open(PID,"$pidfile")) { AVY> my $last_pid=<PID>; AVY> close PID; AVY> if (defined $last_pid && kill 0,$last_pid) { AVY> warn "Error: $me already running\n"; AVY> exit 255; AVY> } AVY> } AVY> open (PID,">$pidfile"); print PID $$; close (PID); А теперь выкинуть этот диверсантский код и сделать по-человечески: открываем pid-file; блокируем эксклюзивно в неблокирующем режиме; если удалось заблокировать - значит, другого нет. Пишем pid и держим открытым и заблокированным. если заблокировать не удалось - значит, работает другой. Ругаемся и завершаемся. Понимание, почему код диверсантский, оставляется в качестве домашнего упражнения.

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру