모든 시작 스크립트 및 inittab에 대한 환경 변수(TZ) 설정

모든 시작 스크립트 및 inittab에 대한 환경 변수(TZ) 설정

저는 임베디드 Linux 시스템을 개발 중이며 모든 프로세스에 대해 시간대를 설정하는 방법을 찾고 있습니다.

문제는 시작 시 다른 모든 init 스크립트가 이미 설정 TZ되도록 시작 시 환경 변수(init 스크립트)를 설정할 수 있습니까?TZ

이 시스템은 BusyBox 도구를 기반으로 합니다. 폴더에 있는 스크립트를 사용해 보았습니다 /etc/profile.d/.

export TZ="GMT-1"

그러나 초기화 스크립트는 변수를 설정하지 않습니다.

내가 보는 유일한 방법은모두시작 스크립트는 이 변수 ​​자체를 설정합니다. 이 문제에 대한 다른 해결책이 있습니까?

답변1

시스템이 BusyBox init를 사용하지만 그렇지 않은 경우 부팅 시 실행 /etc/inittab됩니다 . /etc/init.d/rcS이것이 쉘 스크립트인 경우 필요한 환경 정의를 추가하기만 하면 됩니다. 쉘 스크립트가 아닌 경우 빌드 를 변경 /etc/init.d/rcS.bin하여 /etc/init.d/rcS. 여기에 정의된 환경 변수는 모든 데몬에 적용되지만 콘솔에서 시작된 셸에는 적용되지 않습니다.exec /etc/init.d/rcS.bin/etc/init.d/rcS

그렇다면 /etc/inittab무엇이 포함되어 있는지 확인하세요. 이 문서는 다음 위치에 있습니다.샘플 파일. somecommand에서 실행하는 항목을 바꿀 수 있습니다 /usr/bin/env TZ=GMT-1 somecommand.

이는 빠르고 지저분한 접근 방식이지만 대부분의 경우 최종 사용자가 시간대를 구성할 수 있도록 허용하므로 별도의 파일에 저장해야 합니다. 이 경우 쉘 래퍼(또는 script )를 거쳐 다음 rcS과 같은 코드를 사용합니다.

export TZ="$(cat /etc/TZ.txt)"

/etc/TZlibc에 따라 uClibc에 대한 시간대 규칙을 작성하는 것과 같이 시간대를 설정하는 더 좋은 방법이 있을 수도 있고 없을 수도 있습니다 .

관련 정보