[질문]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 하는게 가장 간편하죠.
댓글 달기