Para que serve o / etc / timezone?

3

Na minha caixa Linux Manjaro, eu tenho um arquivo /etc/timezone que contém:

Asia/Bangkok

Outro usuário do fórum Manjaro também tem o mesmo arquivo . Esse segmento no todo contém alguma arte prévia sobre esta questão.

O que é estranho é que timedatectl status não usa este arquivo para reportar Region/City . Aqui está o status inicial:

$ timedatectl status                                          
                      Local time: Fri 2018-06-29 11:01:28 +07       
                  Universal time: Fri 2018-06-29 04:01:28 UTC    
                        RTC time: Fri 2018-06-29 04:01:28        
                       Time zone: Asia/Bangkok (+07, +0700)             
       System clock synchronized: no                          
systemd-timesyncd.service active: no                              
                 RTC in local TZ: no                            

Agora eu sobrescrevo o link simbólico /etc/localtime com o conteúdo do arquivo para o qual ele aponta:

$ sudo ln -f "$(realpath /etc/localtime)" /etc/localtime          
$ timedatectl status                                           
                      Local time: Fri 2018-06-29 04:04:03 UTC
                  Universal time: Fri 2018-06-29 04:04:03 UTC
                        RTC time: Fri 2018-06-29 04:04:04
                       Time zone: n/a (UTC, +0000) 
       System clock synchronized: no                               
systemd-timesyncd.service active: no
                 RTC in local TZ: no  

Observe a alteração da hora local para corresponder a UTC e a fuso horário n/a .

Portanto, timedatectl não lê /etc/timezone e timedatectl set-timezone não escreve para /etc/timezone também.

Além disso, meu /etc/timezone é um mistério.

  1. O que escreve isso?
  2. O que é que lê?
  3. Para quê?
por Tom Hale 29.06.2018 / 07:27

1 resposta

4

O GNU libc (e, portanto, qualquer Linux não embarcado) lê /etc/localtime para determinar o fuso horário do sistema (o fuso horário padrão se não for substituído pela variável de ambiente TZ ou por uma configuração específica do aplicativo). * BSD faz a mesma coisa. Alguns sistemas Linux embarcados fazem as coisas de maneira diferente.

/etc/localtime deve ser um link simbólico para um arquivo em /usr/share/zoneinfo/ . Os aplicativos normais não se importam, eles apenas lêem o conteúdo do arquivo, mas os utilitários de gerenciamento do sistema, como timedatectl , importam mais porque também podem alterar a configuração, e fariam isso alterando o destino do link simbólico. / p>

Java faz (ou fez?) as coisas diferem : ele lê /etc/timezone , que contém um nome de fuso horário, que deve ser o caminho para um arquivo relativo a /usr/share/zoneinfo . Não tenho conhecimento de nenhum outro programa que use /etc/timezone e não sei por que a Sun escolheu fazer as coisas de maneira diferente do resto do mundo.

    
por 29.06.2018 / 08:08