|
Модераторы: ginnie, korob2001 |
|
kond |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 24.5.2013 Репутация: нет Всего: нет |
Надо периодически сбрасывать содержимое лог-файла в архив.
Вот так мы пишем в лог: flock($fh, LOCK_EX); seek($fh, 0, SEEK_END); print $fh $line."\n"; flock($fh, LOCK_UN); А вот сброс в архив с обнулением лога: flock(LOG, LOCK_EX) or die "Cannot lock - $!\n"; seek(LOG, 0, 0); open ARC, ">$log_archive" or die "Cannot write - $!\n"; while(<LOG>) { print ARC; } close ARC; seek(LOG, 0, 0); truncate(LOG, 0); flock(LOG, LOCK_UN); Все прекрасно работает в отдельном скрипте, запускаемом по крону или руками. Хотелось (не спрашивайте, из каких соображений) не запускать отдельный скрипт, а делать это в коде самого демона. И тут оказалось, что часть данных теряется. Пробовал играть с типами болировки и буферизацией - безрезультатно (возможно - не тем играл?). Собственно, если не получится, можно оставить как есть. Так что вопрос, скорее, чисто спортивный - почему тот же код работает корретно из разных процессов и глючит из родственных? |
|||
|
||||
Правила форума "Perl: Системное программирование" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |