Pregunta

Estoy intentando escribir una interfaz web para Crontab en Ruby usando la excelente gema CronEdit.Revisé el código fuente crontab de Dillon Cron y descubrí que actualiza un archivo en particular para que el demonio actualice la lista cron durante el siguiente barrido.

En man crontab para VixieCron, dice:

Además, CRON verifica cada minuto para ver si el Modtime de su directorio de spool (o el modtime en /etc /crontab) ha cambiado, y si lo ha hecho, Cron examinará el Modtime en todos los crontabs y recargará los que han cambiado.Por lo tanto, no es necesario reiniciar cron cada vez que se modifica un archivo crontab.Tenga en cuenta que el comando CRONTAB (1) actualiza el Modtime del directorio de spool cada vez que cambia un CRONTAB.

¿Existe alguna forma independiente de la plataforma (Ubuntu, Red Hat, ArchLinux, Mac OS X) para garantizar que después de editar manualmente el archivo Cron, el demonio lo actualice sin falta?

¿Fue útil?

Solución 3

muchas gracias gnibbler y Aarón. Acabo de ir a través del código fuente para ambos gemas 'siempre' y '' cronedit para Ruby. Ambos se hace un 'crontab -' que sustituye al archivo cron existente con las entradas de cron actualizados. Eso significa contrario a mi pregunta original, estas bibliotecas hacen uso de la herramienta estándar crontab que a su vez haría lo especificidades necesarias para refrescar el demonio.

Creo que la mejor plataforma independiente, y cron (Dillon, vixie, mcron etc.) forma agnóstica para refrescar el demonio es utilizar siempre la utilidad crontab asociado. Incluso cuando se edita mediante programación, el usuario-programa debe pasar el nuevo archivo cron para la utilidad crontab que hacer lo que sea necesario por dicha plataforma / cron específico.

@ Marcos, gracias por los comentarios. Sin embargo, estoy tratando de proporcionar una sencilla interfaz web que el usuario puede personalizar a través de la WWW al igual que editar el archivo crontab directamente.

Muchas gracias por sus respuestas!

Otros consejos

No, no lo hay. Si usted sabe que es VixieCron, a continuación, actualizar la marca de tiempo del directorio. De lo contrario, podría ser capaz de fingir:. Establecer la variable de entorno EDITOR antes de invocar crontab -e (que debe abrir un editor para el crontab)

La idea es configurar el editor para algún programa que hace que el cambio. crontab -e esperará a que el editor de interrumpir y volver a leer el archivo y decirle a cron que algo ha cambiado.

Si tienes una versión antigua de cron, sin embargo, aún tiene que reiniciarlo. Pero dudo que usted puede encontrar muchas versiones antiguas en cualquier cosa que se ejecuta Linux o Mac OS X.

Las distribuciones de Linux modernas y sensatas tienen /etc/cron.d/ directorio donde puede colocar su entrada crontab como un archivo separado.Si no recuerdo mal, el nuevo cronfile se lee a los 2 minutos de haber sido escrito.

Si esto es tan importante, por qué no utilizar una palanca diferente? En otras palabras, hay dos opciones:

crontab. 1: / do / some / muy / específico / cosa con parámetros específicos que tengo que cambiar, etc.

crontab 2: / hacer / lo / necesidades / a / BE / hecho

En el # 2, el trabajo es responsable de determinar en tiempo de ejecución lo que hay que hacer y hacerlo. Con este diseño, la noción de la necesidad de entender cómo funciona el crontab en algún nivel detallado es irrelevante.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top