node.js로 만든 것은 우분투에서 Upstart를 이용해서 데몬처럼 실행시키고 있습니다.
(참고 http://blog.outsider.ne.kr/544 )


script  
    chdir /path/to/socketio-slide/socket.io  
    exec sudo -u USERNAME sh -c "/usr/local/bin/node socketio-slide.js >> /var/log/node/socketio-slide.log 2>&1"  
end script 

node.js내에서 시스템의 환경변수를 사용하려고 하는데요.
/etc/profile 파일에다가 export를 써서 환경변수를 등록하면 콘솔에서는 환경변수가 잘 동작하는데 위처럼 upstart로 실행하였을 때는 undefined로 나와버립니다. (사용자계정읜 .profile도 마찬가지입니다.)
디비정보나 이런 걸 환경변수에 넣어놓고 같이 관리하려고 하는건데요.

위처럼 upstart로 실행할때도 우분투에 등록한 환경변수를 그대로 사용하게 하려면 어떻게 해야할까요?

asked Nov 10 '10 at 20:53

Outsider's gravatar image

Outsider
1186

edited Nov 10 '10 at 20:57


sudo 를 사용할때 환경변수를 전달하지 않는 문제이네요. 검색어로 sudo env 를 넣고 구글링해보시면 답이 많이 있을 겁니다 :-)

(지나가던 WiFi, 휙 빌려써서 올립니다요 ㅋ)

answered Nov 11 '10 at 04:18

andrwj's gravatar image

andrwj
1093

터미널에서 sudo echo로 찍어보면 잘 나오는데 그것하고는 상관없는걸까요?

(Nov 11 '10 at 09:46) Outsider

먼저 데몬으로 돌리는 경우처럼 시스템 단위의 환경 변수를 적용하는 경우 /etc/profile에 값을 저장하는 것이 일반적입니다. 이/etc/profile에 설정된 환경 변수는 쉘 진입과 상관없이 작동하기 때문입니다.

upstart 역시 /etc/profile에 영향을 받으며 예전에 그렇게 작동했던 기억이 있습니다.

answered Feb 12 '11 at 03:26

Dalinaum's gravatar image

Dalinaum
12

edited Feb 12 '11 at 03:52

내 답변
toggle preview

구독:

로그인 후에는 모든 변경사항에 대해 구독할 수 있습니다.

Tags:

×2
×1
×1
×1

질문등록: Nov 10 '10 at 20:53

열람: 1,345 times

최종 수정: Feb 12 '11 at 03:52

powered by OSQA