On 03/02/15 23:30, Pádraig Brady wrote: > On 03/02/15 22:04, Stephane Chazelas wrote: >> Hello, >> >> On Linux, when inotify is used, >> >> tail -f file >> >> follows a file only until it's renamed. After it is renamed, the >> inotify watch is removed, which means tail sits there doing >> nothing and any further modifications to the file are ignored. >> >> To reproduce: >> >> echo 1 > file >> tail -f file & >> exec 3>> file >> echo 2 >&3 >> sleep 1 >> mv file file2 >> sleep 1 >> echo 3 >&3 >> sleep 1 >> : > file2 >> >> "3" is not displayed. No message about the file being truncated >> either. >> >> Work arounds: >> >> tail ---disable-inotify -f file >> tail -f < file # effectively disables inotify >> >> or rename the file with a link() followed by an unlink() >> ln file newfile && rm -f file >> >> Note that the IN_DELETED_SELF event is not reached in >> follow-descriptor mode because tail has the file open preventing >> it from being deleted even after it's unlinked from the last >> directory. >> >> Patch attached (on the current git head). > > Ouch. The patch makes sense on first glance, > and all existing tests pass with it. > I'll check some more and add a test. Sorry for the delay. I'll apply the attached in your name soon. thanks, Pádraig.