execle()를 사용할 때 환경변수 전달하는 문제인데요
글쓴이: study / 작성시간: 목, 2017/04/06 - 8:56오전
execle()를 사용해서 bash를 실행하고, 새로 실행되는 bash에 환경변수를 설정하려고 합니다.
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> int main(void) { char *env[] = {"TMOUT=60", NULL}; execle("/bin/bash", "bash", NULL, env); return 0; } <code> 위와 같이 하고, 새로 실행된 bash에서 환경변수를 확인해보면 TMOUT이 설정되는 것이 보이는데요 아래와 같이 sudo를 사용해서 bash를 실행하면 환경 변수에 TMOUT이 설정되지 않네요. <code> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> int main(void) { char *env[] = {"TMOUT=60", NULL}; execle("/bin/sudo", "sudo", "/bin/bash", NULL, NULL); return 0; } <code> sudo를 써서 shell을 실행할 때는 환경변수 설정을 어떻게 하나요?
Forums:
음 ..
sudo 에 env 를 넘기고 -E 옵션을 주면 되지 않을까요..?
아니면, 아래처럼 실행할 때 환경 변수를 넘겨도 될 것 같네요.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
답변 감사합니다.
위의 분이 알려주신대로 아래와 같이 code를 시험해 보니 잘 되네요 ^^
댓글 달기