Jai créé un script qui ajoutera une tâche cron en fonction des spécifications de lutilisateur, mais cela ne fonctionnera pas car je dois actualiser cron à chaque fois Jajoute une tâche dans crontab. Existe-t-il un moyen dactualiser cron sans interrompre le processus?
Réponse
Tant que votre script utilise crontab
pour ajouter et supprimer des spécifications de travail pour lutilisateur, il ne serait pas nécessaire de redémarrer le démon cron
.
La page du manuel AIX 7.1 cron indique :
Lorsque vous apportez des modifications aux fichiers crontab en utilisant la commande
crontab
, un message indiquant la modification est envoyé au démon cron.
Voir aussi le crontab
manuel .
Le déroulement général des actions que votre script take:
- Récupère le crontab de lutilisateur dans un fichier texte en utilisant
crontab -l >crontab.txt
. - Manipulez le fichier texte en ajoutant, supprimant ou modifiant les spécifications des travaux.
- Chargez le crontab de l’utilisateur avec les nouvelles spécifications à l’aide de
crontab crontab.txt
.
Les commandes des première et dernière étapes doivent être exécutées en tant quutilisateur (la première étape peut également être exécutée en tant que crontab -l username >crontab.txt
comme par exemple root).
Cela fonctionnerait sur nimporte quel Unix utilisant cron
.
Commentaires
Réponse
AIX 7.1 page de manuel cron dit :
Le Le démon cron lit le fichier de configuration lorsquil est activé et lorsquil reçoit le signal de raccrochage.
Donc, juste kill -HUP cron_pid
devrait le faire.
Commentaires
- Jai déjà essayé mais jaimerais actualiser ma configuration sans tuer le processus
- @Shan La commande
kill
envoie des signaux au processus. En général, les processus peuvent être tués, cest-à-dire quils meurent réellement, en recevant un signal. Mais dans le cas dun processuscron
, il gère le signal, ne meurt pas et relit sa configuration. - La partie de la page de manuel que vous avez citée est se référant au ' fichier de configuration de cron ,
/etc/cronlog.conf
, pas aux fichiers crontab eux-mêmes. - Je ne peux pas en faire une réponse à cette question; lorsque jédite manuellement un fichier crontab et un cron HUP, le nouveau travail cron nest pas exécuté.
- @JeffSchaller est correct, vous devez soit tuer -9 cron_pid, soit utiliser crontab sur un fichier crontab comme suggéré par Kusalananda dans lautre réponse pour recharger la crontab.
crontab -l
.