다음을 사용하여 환경 변수를 설정했습니다 /etc/profile
.
export VAR=/home/userhome
그럼 내가 echo $VAR
보여 주면/home/userhome
그러나이 변수에 대한 참조를 /etc/init.d/servicename
파일에 넣으면이 변수를 찾을 수 없습니다. 다음 내용의 파일을 service servicename status
사용하여 실행할 때 /etc/init.d/servicename
:
case "$1" in
status)
cd $VAR/dir
;;
esac
그것은 말한다 /dir: No such file or directory
하지만 /etc/init.d/servicename status
대신 달리면 작동합니다.service servicename status
유닉스 서비스가 환경 변수를 볼 수있게하려면 어떻게해야합니까?
rc
스크립트를 직접 호출 해도 시스템 운영 체제 에서도 작동하지 않습니다. 스크립트의 모든 호출은systemctl
숨겨진 후크 에 의해 호출 되기 때문입니다.