为什么将程序代码存储在/var/cache中?

为什么将程序代码存储在/var/cache中?

我继承了 Java / Tomcat 堆栈,在 Ubuntu 上运行。它崩溃了,我正在尝试重新启动它。程序代码似乎使用了我在文件系统上找到的配置文件。

问题是我在交接中发现了这个注释:

the app code is in /var/lib/tomcat6/webapps/PCRTiler
config and helping files are in /var/cache/tomcat6/work/PCRTiler
/work/PCRTiler is a symlink for /var/cache/tomcat6/work/PCRTiler

/var/cache下没有tomcat6目录。我也找不到 / 中名为 work 的符号链接。如果删除底层目录,链接会被破坏吗?

将程序特定的代码保存在 /var/cache 中是否是标准做法,并且该目录是否永久存在?

编辑

发现一个 install.sh 脚本似乎正在复制到 /var/cache 和 /var/lib

#!/bin/bash
rm -rf /var/lib/tomcat6/webapps/PCRTiler
rm -rf /var/cache/tomcat6/work/PCRTiler
mkdir -p /var/lib/tomcat6/webapps/PCRTiler
mkdir -p /var/cache/tomcat6/work/PCRTiler
cp -r * /var/lib/tomcat6/webapps/PCRTiler
cp -r /var/lib/tomcat6/webapps/PCRTiler/cache_skel/* /var/cache/tomcat6/work/PCRTiler
chown -R tomcat:tomcat /var/cache/tomcat6/work/PCRTiler
chown -R root:root /var/lib/tomcat6/webapps/PCRTiler
service tomcat6 restart

答案1

根据该指南的指导Linux 文件系统层次结构:

/var/缓存

适用于应用程序的缓存数据。此类数据是由于耗时的 I/O 或计算而在本地生成的。该数据通常可以重新生成或恢复。与 /var/spool 不同,这里的文件可以被删除而不会丢失数据。该数据在应用程序调用和系统重新启动之间保持有效。缓存数据的单独目录的存在允许系统管理员设置与 /var 中其他目录不同的磁盘和备份策略。

我认为最后一句话可能提供了一个理由,尽管在这种情况下,它听起来与主要描述相反:“此类数据是由于耗时的 I/O 或计算而在本地生成的。”

这可能只是个人的古怪或无知的选择。创建应用程序特定的目录并不罕见,/var/cache并且它们是持久的,但我认为将源文件或配置文件放在那里有点不寻常。如果您想要应用程序代码的路径外目录树,则更规范的位置是/opt.

然而,像 apache 这样的网络服务器将一些模块化应用程序代码保存在 的自定义子目录中是很正常的/var,所以这是一个先例。

相关内容