Tomcat服务器在tmp中创建目录

13
每次运行嵌入式虚拟Tomcat服务器(Spring Boot)都会在/tmp/目录下创建一个名为tomcat.##########################.8080的目录结构(我猜测8080代表端口或其他什么,但是这个数字是一致的)。这个结构本身不会占用太多空间,但是经常运行Tomcat服务器后,随着时间的推移,可能会填满这个目录。是否可以将其作为可配置选项来防止此类情况发生?例如,路径可以类似于:/tmp/tomcat.1185139485157901.8080/work/Tomcat/localhost/_/SESSIONS.ser WEB-INF/ 等等。

我还注意到,org.apache.tomcat.embed 7.0.52在这些临时目录中留下了比8.0.23更多的数据。 - mdjnewman
1个回答

8
很遗憾,嵌入式和非嵌入式Tomcat都需要一个目录来存储临时文件。这是不可配置的,但您可以使用setBaseDir指定Tomcat存储这些临时文件的目录。
这应该是调用的第一个方法public void setBaseDir(String basedir),如果您的代码中没有指定它,它将在以下位置查找:
系统属性 - catalina.base, catalina.home - $HOME/tomcat.$PORT
知道了位置后,我建议编写一个简单的定期脚本,定期检查并删除该目录下的文件。

谢谢。这是一个旧问题,但我几乎是这样处理的。我创建了一个 cronjob 来检查 tmp 目录中的目录数量,并在达到一定阈值后删除它们。 - user3684399
这是一个非常古老的问题,但通常来说,操作系统应该会定期清除/tmp文件夹(参见例如https://serverfault.com/questions/377348/when-does-tmp-get-cleared)。因此,您还应该考虑设置操作系统相应的选项(即在/tmp文件夹中配置足够的空间和频繁的清理计划,以确保它不会接近填满)。 - Brian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接