번역: Ph.D.: 어떤 초기화 수준에서 /etc/profile 또는 /etc/environment 파일을 읽습니까?
/etc/init.d/myservice
에 있는 쉘 스크립트를 시작하는 서비스( )를 만들고 싶습니다 /opt/myservice/myservice.sh
. 단, 이 위치( /opt/myservice/
)는 설치 시 정의된 위치이므로 고정된 위치는 아닙니다.
파일에 환경 변수 /etc/profile
나 /etc/environment
이와 유사한 변수 를 설정했다고 가정해 보겠습니다 MYSERVICE_PATH=/opt/myservice
.# Default-Start: 3 4 5
/etc/init.d/myservice
$MYSERVICE_PATH
내 초기화 스크립트가 이를 호출할 수 있도록 이러한 초기화 레벨(3, 4, 5)에서 항상 사용 가능하다고 가정할 수 있습니까 sh $MYSERVICE_PATH/myservice.sh
?
답변1
잘못된 위치에 애플리케이션 구성 정보를 저장하고 있을 수 있습니다.
/etc/profile
로그인 셸의 기본 설정을 구성하는 데 사용됩니다(예: SSH를 통해 연결하고 bash
로그인 셸로 호출하는 경우). 그 목적은 응용 프로그램 설치 위치 등을 구성하는 것이 아닙니다.
/etc/
그러나 전체적으로는 그렇습니다. 당신이 찾고 있는 것을 성취하는 가장 좋은 방법은 아마도 항상 상주하는 구성 파일을 정의하는 것입니다. /etc/myservice.conf
예를 들어 다음과 같습니다:
# Configuration file for the My Service daemon
#
# Default settings:
# myservice_root - The directory in which the service is installed
# Default: /var/run/myservice
# myservice_port - The TCP port upon which the service listens for incoming connecitons
# Default: 55321
myservice_root=/opt/myservice
myservice_port=6466
그러면 응용 프로그램은 /etc/myservice.conf
파일 시스템의 어디에 설치되었는지에 관계없이 항상 해당 구성을 볼 수 있으며, 다른 시스템 관리자는 파일이 어떤 용도로 사용되는지, 어떤 옵션을 재구성할 수 있는지 즉시 확인할 수 있습니다.