TZ 환경변수 system wide하게 설정하기

dorado2의 이미지

많이들 아시겠지만 timezone과 관련된 TZ 환경변수 설정을 코드상에서

putenv("TZ=PST8DST,M4.1.0,M10.5.0");
putenv("TZ=Asia/Seoul");

이런 식으로 해주게 되면 동작이야 합니다만, 문제는
해당 프로그램의 프로세스가 종료하면 날아가 버린다는 것입니다.

스크립트 상에서 export TZ=~~ 해줘도 스크립트 종료되면
환경변수 날아가긴 마찬가지구요. (fork()로 프로세스 만들어서 그런거겠죠?)

제가 원하는 것은 C 코드나 스크립트 상에서 timezone 설정을 바꾸어 주고 나서 콘솔이나 다른 프로그램에서 timezone 변경이 잘 반영되어 date 명령이 동작하는 것입니다.

system wide하게 설정하는 방법 중 하나는 해당 zone에 맞는 timezone을 /usr/share/zoneinfo에서 끌어와서 링크하는 것임은 아는데요. timezone이 "PST8DST,M4.1.0,M10.5.0" 식으로 주어지게 되면 해당 timezone을 가져오기가 불가능해 보여서 그렇습니다.

비슷한 문제로 고민해 보신분, 좋은 방법이 없을까요?

wkpark의 이미지

tzselect 써보셨나요?

온갖 참된 삶은 만남이다 --Martin Buber