서비스 시작 시 환경 변수가 표시되지 않는 이유를 알고 싶습니다. 더 정확하게 말하면 LSB 사양에 따라 일부 Java 프로세스를 시작하는 서비스 시작 스크립트를 만들었습니다. 이렇게 하려면 먼저 JAVA_HOME 환경 변수를 확인하세요. 이 환경 변수는 /etc/profile.d/java.sh에 설정됩니다. 서비스 시작 시에는 수행되지 않을 수 있습니다. 프로세스를 이해하고 싶습니다. 이 경우 올바른 해결 방법은 무엇입니까?
답변1
RC 스크립트는 비대화형 쉘 스크립트라고 합니다. 그러므로 그들은 /etc/profile을 읽지 않습니다. 따라서 스크립트에서 변수를 명시적으로 정의해야 합니다. 스크립트에서 직접 사용하거나 많은 RC 스크립트(/etc/sysconfig/$package에 정의된 주요 변수)에서 사용되는 일부 (마스킹) 기술을 사용합니다.
tomcat6이 이 작업을 수행하는 방법을 살펴보십시오(비록 제 생각에는 상당히 복잡하지만).