.bash_profile 을 이용하여 LD_LIBRARY_PATH 에 필요한 Path를 추가하고
System 을 on/off 하지 않더라도 바로 적용해야 할 경우 command 로 source 를 이용한다.
source ~/.bash_profile
또는 이렇게
. ~/.bash_profile
install shell script 를 만드는 중 shell script 안에서 .bash_profile 에 application에서 필요한 library path를
LD_LIBRARY_PATH에 추가 한 후 source ~/.bash_profile 을 해 보니 ... 안먹힌다..
많은 구글링을 했지만 적당한 답을 얻지 못했다. (do not work source command in shell script)
회사에 서버개발자들이 많아 문의를 해보니 깔끔한 답변을 받을 수 있었다. (여윽시...진즉에 물어볼걸....)
고맙습니다. 양책임님^^
원인
- shell script file 실행 시 실행의 주체가 되는 shell process가 새로운 sub shell process를 생성하여 sub shell 내에서 실행함
- sub shell은 부모쉘과 독립된 메모리를 사용하기 때문에 이 때 등록한 환경변수를 script를 모두 실행하고 부모쉘로 돌아갔을 때 사용할 수 없음
해결방법
- source 명령어를 사용하여 스크립트 파일을 실행
- source install.sh 혹인 . ./install.sh를 통해 script file을 실행하면 새로운 sub shell을 생성하지 않고 기존의 shell에서 script를 바로 실행하므로 적용된 환경변수를 유지할 수 있음
주의사항
- 현재 putty client로 실행한 remote shell을 그대로 사용하기 때문에 script 내에 exit 명령어가 동작하면 세션이 종료됨 (창 닫힘)
'IT > Linux' 카테고리의 다른 글
CentOS Network 설정 (0) | 2014.03.25 |
---|---|
yum 오류 (0) | 2014.01.03 |
centos java 설치 후 default java 변경 (0) | 2013.12.30 |
Apache 설치 (Cent OS) (0) | 2013.12.26 |
CentOS 리눅스 yum 사용법 (0) | 2013.12.26 |