Como executar o fake-hwclock antes que o / var / log / wtmp seja atualizado?

7

Eu tenho um pi de framboesa e cada reinicialização vejo essa saída no final:

root@RaspberryPi:~# last | grep boot
reboot   system boot  4.4.0-1055-raspi Thu Jan  1 01:00   still running
reboot   system boot  4.4.0-1055-raspi Thu Jan  1 01:00   still running
reboot   system boot  4.4.0-1055-raspi Thu Jan  1 01:00 - 23:01 (17305+22:01)
reboot   system boot  4.4.0-1055-raspi Thu Jan  1 01:00 - 23:01 (17305+22:01)
reboot   system boot  4.4.0-1055-raspi Thu Jan  1 01:00 - 23:01 (17305+22:01)

Isso ocorre apesar de ter ambos, o falso-hwclock e um hardware RTC instalado.

Atualmente, o serviço para fake-hwclock.service é iniciado antes de sysinit.target, desta forma:

[Unit]
Before=sysinit.target

[Service]
ExecStart=/sbin/fake-hwclock load

[Install]
WantedBy=sysinit.target

Como posso executá-lo antes que o / var / log / wtmp seja atualizado?

    
por Roman Gaufman 30.05.2017 / 22:24

2 respostas

0

Eu acredito que este é um bug no systemd-update-utmp. Veja meu comentário aqui: link

Uma solução alternativa é executar o fake-hwclock no initramfs, antes de passar o controle para a instância principal do systemd.

    
por 02.11.2018 / 03:07
-1

Os registros de login "reboot" do wtmp são manipulados pelo serviço systemd-update-utmp systemd. Ele deve ser iniciado antes do destino sysinit, o que significa que, antes que o início seja concluído, este serviço será iniciado SE já não foi iniciado. Isso não significa que o systemd-timesyncd necessariamente iniciará antes do systemd-update-utmp.

Eu testei no meu servidor arch linux e consistentemente o systemd-timesyncd sempre roda bem antes do systemd-update-utmp. Por outro lado, eles estão quase sempre a uma distância um do outro.

Mas como não está explicitamente em execução após o NTP, suponho que isso ainda seja considerado um bug.

No manual do systemd:

"Após = é o inverso de Before =, isto é, enquanto After = assegura que a unidade configurada é iniciada após a unidade listada terminar de iniciar"

link

O que você deve fazer:

systemctl edit systemd-update-utmp

[Unit]
After=systemd-timesyncd.service
Wants=systemd-timesyncd.service
    
por 26.11.2017 / 10:52