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:

  1. Récupère le crontab de lutilisateur dans un fichier texte en utilisant crontab -l >crontab.txt.
  2. Manipulez le fichier texte en ajoutant, supprimant ou modifiant les spécifications des travaux.
  3. 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

  • Et sil y a des emplois existants? Dois-je dabord le mettre dans le même fichier texte, puis ajouter le nouveau travail avant de le charger dans le crontab?
  • @Shan Comme je lai mentionné, vous obtiendrez le crontab actuel pour lutilisateur, puis modifiez-le avant de le charger à nouveau. Alors oui, vous ajouteriez de nouvelles tâches au fichier produit par crontab -l.

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 processus cron, 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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *