Creé un script que agregará un trabajo cron basado en las especificaciones del usuario pero no funcionará ya que necesito actualizar cron cada vez Agrego un trabajo en crontab. ¿Hay alguna manera de actualizar cron sin matar el proceso?
Responder
Siempre que su El script usa crontab
para agregar y eliminar especificaciones de trabajo para el usuario, no habría necesidad de reiniciar el cron
demonio.
La página del manual cron de AIX 7.1 dice :
Cuando realiza cambios a los archivos crontab usando el comando
crontab
, se envía un mensaje que indica el cambio al demonio cron.
Consulte también el crontab
manual .
El flujo general de acciones que su secuencia de comandos tomar:
- Obtenga crontab del usuario en un archivo de texto usando
crontab -l >crontab.txt
. - Manipule el archivo de texto agregando, eliminando o cambiando las especificaciones de trabajos.
- Cargue el crontab del usuario con las nuevas especificaciones usando
crontab crontab.txt
.
Los comandos del primer y último paso deben ejecutarse como el usuario (el primer paso también puede ejecutarse como crontab -l username >crontab.txt
como p. ej. root).
Esto funcionaría en cualquier Unix que use cron
.
Comentarios
Respuesta
AIX 7.1 La página del manual cron dice :
El El demonio cron lee el archivo de configuración cuando se activa y cuando recibe la señal de colgar.
Así que solo kill -HUP cron_pid
debería hacerlo.
Comentarios
- Ya probé esto pero me gustaría actualizar mi configuración sin matar el proceso
- @Shan El comando
kill
envía señales al proceso. En general, los procesos se pueden matar, es decir, realmente mueren, al recibir una señal. Pero en el caso decron
proceso, este maneja la señal, no muere y vuelve a leer su configuración. - La parte de la página de manual que citó es refiriéndose a cron ' s archivo de configuración ,
/etc/cronlog.conf
, no a los archivos crontab en sí mismos. - No puedo convertir esto en una Respuesta para esta pregunta; cuando edito manualmente un archivo crontab y cron HUP, el nuevo trabajo cron no se ejecuta.
- @JeffSchaller es correcto, o tiene que matar -9 cron_pid o usar crontab en un archivo crontab como sugiere Kusalananda en la otra respuesta para volver a cargar el crontab.
crontab -l
.