ADJKERNTZ(8)

명칭
adjkerntz - 로컬 시간 CMOS 클락을 타임 존의 변경을 반영하도록(듯이) 조정해, 현재의 타임 존 오프셋(offset)를 커널용으로 보관 유지한다

서식
adjkerntz -i adjkerntz -a [-s]

해설
adjkerntz 유틸리티는, UTC 가 언제나 설정되어 있는 커널 클락과 로컬 시간이 설정되어 있을지도 모르는 CMOS 클락과의 사이의 적절한 관계를 취급합니다. adjkerntz 유틸리티는, 또 MS-DOS 파일 시스템과 같은 로컬 시간 파일 시스템 (을)를 위한 적절한 타임 스탬프를 취급하기 위해서(때문에), 커널에 기계의 타임 존 의 쉬프트를 가르칩니다. 이 주요한 목적은, 최초부터 망가져 있는 MS-DOS 파일 타임 스탬프의 생각을 전면적으로 고치기 위해서가 아니고, 같은 타임 스탬프를 같은 기계상의 FreeBSD 의 MS-DOS 파일 시스템과 MS-DOS operating system로 유지하기 위한 것입니다. 파일 /etc/wall_cmos_clock (이)가 있는 경우, CMOS 클락은 (MS-DOS 나 MS-Windows 호환 모드의) 로컬 시간을 보관 유지하고 있는 것을 의미합니다. 이 파일이 없는 경우, CMOS 클락은 UTC 시간을 보관 유지하고 있게 됩니다. adjkerntz 유틸리티는, 이 상태를 커널 변수의 machdep.wall_cmos_clock 에 통지합니다.

시간 조정은 시스템의 시작과 셧다운시, 그리고 타임 존의 변경이 일어났을 때는 언제라도 필요하게 됩니다. 이러한 다른 상황을 취급하기 위해서(때문에), adjkerntz (은)는 두 개의 방법으로 시작할 수 있습니다.

-i  이 형식은, 시스템의 시작과 셧다운을 취급합니다. multiuser 모드의 선두에서, adjkerntz 유틸리티는 /etc/rc (으)로부터 이 옵션을 붙여 불려 갑니다. 이것은 다른 demon가 실행되기 전에 행해집니다. adjkerntz 유틸리티는 자기 자신을 백그라운드에서 실행합니다. 그 후, 로컬 시간 CMOS 클락을 위해서(때문에), adjkerntz (은)는, 로컬 시간을 거기로부터 읽어들여, 커널 시간을 올바른 UTC 시간에 설정합니다. adjkerntz 유틸리티는, 이 이후에서의 'adjkerntz -a' 호출에서의 이용을 위해나, 로컬 파일 시스템에서의 이용을 위해서(때문에), 로컬 타임 존 오프셋(offset)를 machdep.adjkerntz 커널 변수로 설정합니다.

    로컬 시간 CMOS 클락을 위해서(때문에), 'adjkerntz -i' (은)는, 일시정지해, 배경의 demon로서 활동을 정지합니다. 이 demon는, SIGTERM 시그널을 받을 때까지 그대로입니다. SIGTERM 는 보통, 시스템이 multiuser 모드를 종료할 때에 init(8) 에 의해 보내집니다 (보통, 시스템이 셧다운 될 때입니다). SIGTERM 를 받은 다음에 adjkerntz (은)는, UTC 커널 시간 클락을 읽어들여, 필요하면 현재의 로컬 타임 존을 반영하도록(듯이) CMOS 클락을 갱신합니다. 그 후, adjkerntz (은)는 종료합니다.

-a [-s]
    이 형식은, 타임 존의 변경이 일어났을 때에, 로컬 시간 CMOS 클락과 커널 machdep.adjkerntz 변수를 갱신하기 위해서 사용됩니다. 예를 들면, 서머타임에 접어들거나 종료하거나 했을 때에 사용됩니다. adjkerntz 유틸리티는, 커널 클락의 UTC 시간·이전에 보존한 타임 존 오프셋(offset)· 새로운 타임 존을 계산하기 위한 타임 존 변경 규칙을 사용합니다. 이것은, 새로운 오프셋(offset)를 machdep.adjkerntz 커널 변수에 보존해, CMOS 클락을 새로운 로컬 시간에 갱신합니다. 'adjkerntz -a' 하지만, (타임 존 변경중에) 존재하지 않는 시간에 실행되었을 경우, -s 옵션이 사용되지 않은 경우는 경고 진단을 내, 종료합니다. -s 옵션이 사용되고 있는 경우는, 30 초간 sleeve 해 한번 더 시험합니다.

    이 형식은, 대다수의 현대의 타임 존의 변경이 일어나는, 한밤 중부터 5:00 까지의 사이에 30 분 마다, root 의 crontab(5) (으)로부터 불려 가야 합니다. 경고: -s 옵션을 crontab(5) 의 명령행중에서 사용해서는 안됩니다. 사용해 버리면(자), 복수의 'adjkerntz -a' 하지만 서로 충돌해 버리겠지요.

adjkerntz 유틸리티는, 커널 타임 존 구조를 소거해, 커넬 클락을 UTC 타임 존으로 달리게 합니다. 슈퍼 유저의 권한이, 모든 조작을 위해서(때문에) 필요하게 됩니다.

환경 변수

TZ  타임 존의 변경 규칙. tzset(3) (을)를 봐 주세요. tzsetup(8) 혹은 zic(8) (을)를 사용하고 있는 경우는, 필요 없습니다.

관련 파일
/etc/localtime
    현재의 존 정보 파일입니다. tzsetup(8) (와)과 zic(8) (을)를 봐 주세요.
/etc/wall_cmos_clock
    하늘의 파일입니다. 이것은, 기계의 CMOS 클락이 로컬 시간으로 설정되어 있는 것을 가리키고 있습니다. 반대로 이것이 존재하지 않으면 UTC 의 CMOS 클락에 설정되어 있습니다.

관련 항목
tzset(3), crontab(5), mount_msdosfs(8), rc(8), sysctl(8), tzsetup(8), zic(8)

진단
진단은 없습니다. 에러가 일어났을 경우는, adjkerntz (은)는 에러 메세지를 syslog(3) (을)를 사용해 기록해, 제로가 아닌 값을 돌려주어 종료합니다.

저자
Andrey A. Chernov <ache@astral.msk.su>

역사
adjkerntz 유틸리티는, FreeBSD 1.0 (으)로부터 도입되었습니다.