<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, May 20, 2014 at 9:37 AM, Valentin V. Bartenev <span dir="ltr"><<a href="mailto:vbart@nginx.com" target="_blank">vbart@nginx.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Deleting a file doesn't make file descriptor "invalid".  It's valid and the<br>
file actually exists on file system till there is at least one descriptor<br>
pointing to that file.<br></blockquote><div><br><div class="gmail_default" style="font-size:small;color:rgb(51,51,153);display:inline">​Thanks for that Valentin, I learned something today.<br><br></div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153);display:inline">

I read <a href="http://stackoverflow.com/questions/2028874/what-happens-to-an-open-file-handler-on-linux-if-the-pointed-file-gets-moved-de#2031100">http://stackoverflow.com/questions/2028874/what-happens-to-an-open-file-handler-on-linux-if-the-pointed-file-gets-moved-de#2031100</a><br>

</div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153);display:inline">As I understand it, all log messages going to a moved file​</div> <div class="gmail_default" style="font-size:small;color:rgb(51,51,153);display:inline">

​will still be printed into it.<br></div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153);display:inline">So if I move /var/log/nginx/access.log to /foo/bar.log, all error log message will continue to be printed in /foo/bar.log, until I send the USR1 signal to nginx (either master or workers), which will then close the file descriptor (thus effectively delete /var/log/nginx/access.log which was marked for deletion until then)​ and will create a new file in /var/log/nginx/access.log<br>

</div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153);display:inline">Am I right?<br></div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153);display:inline">I suspect the file does not really move out of /var/log/nginx if at least one fd is open on it. I suspect then that there is a symlink created in /foo/bar.log pointing to the old file until it is effectively moved.<br>

</div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153);display:inline"><br></div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153);display:inline">Does the same happens if the file is moved on a remote disk (ie does the fact that a file is moved through copy+delete rather than rename have any impact?)<br>

<font size="1"><span style="color:rgb(102,102,102)"><div class="gmail_default" style="font-size:small;color:rgb(51,51,153);display:inline">​</div>---<br></span><b><span style="color:rgb(102,102,102)">B. R.</span></b><span style="color:rgb(102,102,102)"></span></font><br>

</div></div></div></div></div>