
我繼承了 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
,所以這是一個先例。