在做Nginx的日志文件切割,发现一个诡异的问题。当我手工把Nginx的日志文件转移位置以后,如果不reload配置文件,Nginx还是继续写这个被转移到其他目录的日志文件。 难道Nginx写日志的时候不是通过文件路径吗? 为什么日志文件被转移走了还是能写到?
这是文件系统的特性,有点类似编程语言管理变量生命周期的里的引用计数。移动一个文件,甚至删除一个文件,只要这个文件还被某个进程打开着,这个文件就还能被访问到。但如果所有的“引用”都没有了,例如文件名,硬链接(hard link)及文件句柄(不再被程序打开着),才影响对文件的下一次引用,就表现为“找不到文件了”。
欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。 温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。