Pergunta

Linux fornece a chamada stime (2) para definir a hora do sistema. No entanto, enquanto isso irá atualizar a hora do sistema, ele não define o relógio de hardware BIOS para corresponder ao novo horário do sistema.

sistemas Linux normalmente sincronizar o relógio do hardware com a hora do sistema no desligamento e em intervalos periódicos. No entanto, se a máquina recebe energia-ciclo antes de um desses sincroniza automáticas, o tempo será incorreta quando a máquina é reiniciado.

Como você garante que o relógio de hardware é atualizado quando você definir a hora do sistema?

Foi útil?

Solução

Confira o homem-página rtc para detalhes, mas se você está logado como root, algo como isto:

    struct       rtc_time {
        int         tm_sec;      
        int         tm_min;      
        int         tm_hour;     
        int         tm_mday;     
        int         tm_mon;      
        int         tm_year;     
        int         tm_wday; /* unused */
        int         tm_yday; /* unused */
        int         tm_isdst;/* unused */
    };

struct rtc_time rt;
/* set your values here */
fd = open("/dev/rtc", O_RDONLY);
ioctl(fd, RTC_SET_TIME, &rt);
close(fd);

Outras dicas

Depois de chamar stime (), faça o seguinte:

system("/sbin/hwclock --systohc");

Veja a hwclock (8) página de manual para mais informações.

Gostaria de começar por ler o código-fonte do hwclock.

Eu também gostaria de salientar o relógio do hardware só é preciso um ponto (eu sistemas que perdem / ganhar um par de segundos um dia visto).

Você já considerou configurar o daemon de tempo de rede para sincronizar seu relógio contra um servidor de tempo?

É certo que este sincronização não acontece até depois das daemon inicia, então, manter o seu relógio de hardware em sincronia também ajuda entre o poder-se eo ponto o tempo daemon sincronizado contra o servidor tempo.

Se o editor de texto é diferente do Kubuntu (kate é o padrão no editor), usar o seu próprio com o comando sudo no terminal.

  1. executar de terminal
  2. copiar e colar este comando imprensa sudo kate /etc/default/rcS Enter
  3. digite a senha de usuário (sua senha de login) pressione Enter
  4. editor de texto será aberta na área de trabalho
  5. alterar a linha UTC=yes para UTC=no
  6. e clique em Salvar (no topo da barra de abas editor de texto)
  7. reinicialização
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top