Truncar un archivo mientras se está utilizando (Linux)

Tengo un proceso que escribe muchos datos en stdout, que estoy redirigiendo a un archivo de registro. Me gustaría limitar el tamaño del archivo copiando ocasionalmente el archivo actual a un nuevo nombre y truncándolo.

Mis técnicas habituales de truncar un archivo, como

cp /dev/null file

no funciona, presumiblemente porque el proceso lo está usando.

¿Hay alguna forma de truncar el archivo? ¿O eliminarlo y de alguna manera asociar el proceso 'stdout con un nuevo archivo?

FWIW, es un producto de terceros que no puedo modificar para cambiar su modelo de registro.

EDITA la redirección sobre el archivo parece tener el mismo problema que la copia anterior: el archivo vuelve a su tamaño anterior la próxima vez que se escribe en:

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

Respuestas a la pregunta(26)

Su respuesta a la pregunta