|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Andrey Lastochkin 2:5066/18.50 15 Nov 2000 09:56:12 To : Artem Chuprina Subject : apache -------------------------------------------------------------------------------- AL>> данных. Hа клиенте, в браузере, я нажимаю "Остановить". Апач AL>> киляет незавершенный выполняться скрипт. AL>> Вопрос: что можно сделать? AC> Ответ на второй вопрос: локи, если есть возможность, надо ставить не AC> лок-файлами, а локами на открытые файлы или IPC'шными семафорами. И AC> только если у тебя DOS-based система (DOS, Win 9x, Win ME), тогда AC> увы... у меня Unix, мне непонятно следующее: допустим, у меня есть файл, который скрипт полностью обновляет исходя из предыдущих данных (я кэширую squid'овые log'и, создаю промежуточный отчет)... как мне узнать залочен он или нет если мне надо его открыть для записи? ведь если я напишу open FILE, ">$somefile"; flock FILE, LOCK_EX || exit если этот файл уже был флокнуть, он open'ом затрется намертво, а как мне сделать чтобы просто узнать залочен или нет конечно можно сделать open FILE, "$somefile"; if (flock FILE, LOCK_EX) { close FILE; >теоретически здесь может быть задержка, в которую этот файл может быть >флокнут другим скриптом open FILE, ">$somefile"; } AC> Ответ на первый вопрос: повесь обработчик на SIGPIPE. Игнорировать его AC> - не дело, а вот корректно завершаться по нему - самое оно. угумс, хорошо наверное я сделаю так: повешу обработчик на SIGPIPE и сделаю lock-файл обычный (вдруг надо будет ограничить запуск скрипта двум человекам или трем) --- GoldED+/W32 1.1.4.4 * Origin: Каждая пипетка мечтает стать клизмой. (2:5066/18.50) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/33393a122c7a.html, оценка из 5, голосов 10
|