저는 Ubuntu에서 실행되는 Java/Tomcat 스택을 상속받았습니다. 충돌이 발생하여 다시 시작하려고 합니다. 프로그램 코드가 파일 시스템에서 찾은 구성 파일을 사용하는 것 같습니다.
문제는 핸드오프에서 다음 주석을 발견했다는 것입니다.
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에 유지하는 것이 표준 관행이며 이 디렉토리는 지속됩니까?
편집하다
/var/cache 및 /var/lib에 복사되는 것으로 보이는 install.sh 스크립트를 찾았습니다.
#!/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
이므로 이는 선례가 됩니다.