Tengo una raspberry pi y cada reinicio veo este resultado al 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)
Esto es a pesar de tener instalados tanto fake-hwclock como un RTC de hardware.
Actualmente, el servicio para fake-hwclock.service comienza antes que sysinit.target, así:
[Unit]
Before=sysinit.target
[Service]
ExecStart=/sbin/fake-hwclock load
[Install]
WantedBy=sysinit.target
¿Cómo hago para que se ejecute antes de que se actualice /var/log/wtmp?
Respuesta1
Creo que esto es un error en systemd-update-utmp. Vea mi comentario aquí:https://github.com/systemd/systemd/issues/6057#issuecomment-435247567
Una solución alternativa es ejecutar fake-hwclock en initramfs, antes de que pase el control a la instancia principal de systemd.
Respuesta2
Los registros de inicio de sesión de "reinicio" de wtmp son manejados por el servicio systemd-update-utmp. Debe comenzar antes del objetivo sysinit, lo que significa que antes de que se complete el inicio, este servicio se iniciará SI aún no se inició. No significa que systemd-timesyncd necesariamente se iniciará antes que systemd-update-utmp.
Probé en mi servidor Arch Linux y, sin embargo, consistentemente systemd-timesyncd siempre se ejecuta mucho antes que systemd-update-utmp. Por otro lado, casi siempre están a un pid de distancia entre sí.
Pero como no se ejecuta explícitamente después de NTP, supongo que esto debería considerarse un error.
Del manual del sistema:
"Después= es elinversode Antes=, es decir, mientras Después= garantiza que la unidad configurada se inicie después de que la unidad enumerada termine de iniciarse"
https://www.freedesktop.org/software/systemd/man/systemd.unit.html
Lo que debes hacer:
systemctl edit systemd-update-utmp
[Unit]
After=systemd-timesyncd.service
Wants=systemd-timesyncd.service