Tronquer un fichier alors qu'il est utilisé (Linux)

J'ai un processus qui écrit un grand nombre de données sur la sortie standard, qui je suis rediriger vers un fichier journal. J'aimerais limiter la taille du fichier par parfois de copier le fichier en cours d'un nouveau nom et en la tronquant.

Mes techniques habituelles de la troncature d'un fichier, comme

cp /dev/null file

ne fonctionnent pas, sans doute parce que le processus est en l'utilisant.

Est-il une manière que je peux tronquer le fichier? Ou de le supprimer et en quelque sorte associé à la méthode " stdout avec un nouveau fichier?

FWIW, c'est un produit de tiers que je ne peux pas modifier son modèle d'enregistrement.

MODIFIER rediriger sur le fichier semble avoir le même problème que la copie ci - dessus le fichier revient à sa taille précédente prochaine fois:

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
InformationsquelleAutor Hobo | 2009-06-11