¿Hora de actualización usando chrony del script systemd (alguna aplicación se reinicia)?

¿Hora de actualización usando chrony del script systemd (alguna aplicación se reinicia)?

Si mi proveedor de alojamiento mueve mi máquina virtual a otro host, la hora local se aleja (hasta 3 segundos). Chrony puede solucionar este problema, pero pasa mucho tiempo hasta que se da cuenta. Durante este tiempo, el nodo de mi base de datos (CockroachDB) se apaga debido a la diferencia horaria (se permite un máximo de 0,5 segundos). Luego, mi script systemd lo reinicia.

Ahora quiero que el script systemd actualice primero la hora con seguridad. Así que agregué esto a mi /etc/systemd/system/cockroach.serviceguion:

ExecStartPre=-/usr/bin/chronyc -a makestep

Pero esto me da el error 501 (autorización faltante) porque mi script systemd se ejecuta como usuario "cucaracha" y el demonio chrony sólo acepta mensajes de los usuarios root o chrony (UDP).

Ahora estoy estancado. ¿Hay alguna forma de permitir que chrony también reciba mensajes del usuario de cucarachas? O cualquier otra opción para sincronizar la hora ahora (chrony se está ejecutando, por lo que no es posible realizar una actualización manual).

Respuesta1

La solución es la sintaxis "+" para elEjecutivoInicioPreparámetro. Lo siguiente ejecuta elcrónicoejecutable con permisos de root (+) e ignora cualquier error que pueda ocurrir con esta llamada (-):

ExecStartPre=-+/usr/bin/chronyc -a makestep

Esto funcionó bien para mi.

Puede encontrar la documentación para estos prefijos en la documentación de systemd para elInicio ejecutivoparámetro aquí:https://www.freedesktop.org/software/systemd/man/systemd.service.html#ExecStart=

información relacionada