[질문]crontab 으로 실행파일 실행시켰을때 getenv("HOME") 의 값을 못가져 옵니다.
글쓴이: seungo78 / 작성시간: 수, 2008/10/01 - 12:13오후
안녕하세요..
crontab 으로 sh파일을 이용해서 실행파일을 실행하는데요..
실행파일 내부 소스의 getenv("HOME") 의 값을 못가져 옵니다.
printf로 찍어서 log를 확인해 보면 값이 없습니다.
그냥 실행시키면 제 계정의 값이 나오는데요..
환경변수를 추가 하라는 말을 듣고.. sh파일에대가
source /home/제계정/.bashrc
source /home/제계정/.bash_profile
export HOME=seungo <---제계정
crontab에서 실행파일을 실행시켰을때 실행파일 내부의 소스에서 fopen(./test.txt);를 실행하면 파일을 못찾습니다.
test.txt 파일은 실행파일 위치에 있는데요..
crontab을 사용하지 않고 바로 실행시키면 당연히 정상동작하구요..
따로 어떤 환경변수를 설정해 줘야 할까요??
고수님들 부탁드립니다.
Forums:


./와 같은 상대경로는 current working directory를 참조합니다.
실행 파일이 같은 디렉토리와 있는지 여부에 관계없이, ./은 그 실행파일이 알고 있는 current working directory를 기반으로 찾아가게 되고, 따라서 실행한 곳에 test.txt가 없으면 못찾습니다. 실행파일이 a.out이라면, a.out이 있는 곳에 들어가서 ./a.out 이렇게 실행해야 cwd가 같아지겠죠. 아니면 내부적으로 cwd를 test.txt가 있는 곳으로 바꿔줘야 합니다.
답변 너무나 감사합니다.
그러면 current working directory 를 sh 파일에 설정해야 하는것인가요?
어떻게 sh파일에 따로 설정할수 있을까요..?
그리고 소스 내부의 getenv("HOME")를 아예 인식하지 못하던데.. 그건 어떻게 하면 인식할수 있는지 알수 있을까요..
sh라면
경로를 읽어서 cd 하는게 가장 간편하죠.