Усечение файла во время его использования (Linux)

У меня есть процесс, который записывает много данных в стандартный вывод, который я перенаправляю в файл журнала. Я хотел бы ограничить размер файла, периодически копируя текущий файл с новым именем и обрезая его.

Мои обычные методы усечения файла, например

cp /dev/null file

не работает, предположительно, потому что процесс использует его.

Есть ли способ урезать файл? Или удалить его и как-то связать стандартный вывод процесса с новым файлом?

FWIW, это сторонний продукт, который я не могу изменить, чтобы изменить его модель ведения журнала.

РЕДАКТИРОВАТЬ перенаправление по файлу, похоже, имеет ту же проблему, что и копия выше - файл возвращается к своему предыдущему размеру при следующей записи:

ls -l sample.log ; echo > sample.log ; ls -l sample.log ; sleep 10 ; ls -l sample.log
-rw-rw-r-- 1 user group 1291999 Jun 11  2009 sample.log
-rw-rw-r-- 1 user group 1 Jun 11  2009 sample.log
-rw-rw-r-- 1 user group 1292311 Jun 11  2009 sample.log

Ответы на вопрос(13)

Ваш ответ на вопрос