¿Por qué convertir TIMER a SERVICE?
En systemd, estas son dos mitades de un mismo trabajo: el .timer dice cuándo y el .SERVICE dice qué. Por lo tanto, la tarea realista no es la conversión, sino escribir la unidad de servicio correspondiente que el temporizador activa, ya sea por coincidencia de nombre predeterminada o mediante la directiva Unit=.
Cómo convertir TIMER a SERVICE
Cualquier editor de texto FREE
Crea un archivo con el mismo nombre base, por ejemplo, backup.service junto a backup.timer, añadiendo una sección [Service] con ExecStart= configurado con tu comando; el temporizador lo activará automáticamente por nombre.
systemctl edit FREE
Ejecuta systemctl edit --full --force backup.service para abrir una nueva unidad en el directorio correcto, define ExecStart=, luego ejecuta systemctl daemon-reload y habilita el temporizador.
Acerca de estos formatos
Un archivo .timer es una unidad de systemd que programa cuándo se ejecuta otra unidad (generalmente un archivo .service coincidente) en Linux, funcionando como un reemplazo moderno para…
Abrir detalles de .TIMER →Un archivo .SERVICE está asociado con Mac OS X Service Application, un archivo de tipo system.
Abrir detalles de .SERVICE →Calidad y qué observar
- Por defecto, un
backup.timeractivabackup.service; usaUnit=en la sección[Timer]del temporizador solo si el nombre del servicio es diferente. - El servicio normalmente debería ser
Type=oneshotpara tareas programadas, de modo que systemd trate cada ejecución como un trabajo discreto. - Después de crear o cambiar la unidad, ejecuta
systemctl daemon-reloado el temporizador no reconocerá el nuevo servicio.
Preguntas frecuentes
¿Puede un temporizador funcionar sin un servicio?
.service correspondiente que defina el comando.¿Cómo sabe el temporizador qué servicio ejecutar?
foo.timer ejecuta foo.service), a menos que lo anules con Unit= en el archivo del temporizador.¿Debo habilitar el temporizador o el servicio?
.timer; systemd iniciará el servicio según la programación por ti.¿Dónde residen estos archivos de unidad?
/etc/systemd/system/ para unidades de todo el sistema, y ejecuta systemctl daemon-reload después de editarlos.