web-dev-qa-db-fra.com

Un redémarrage de cron ou crond est-il nécessaire après chaque nouvel ajout ou modification d'horaire?

Lorsque je planifie un travail, certains semblent être appliqués immédiatement, tandis que d'autres après un redémarrage. Est-il donc recommandé de redémarrer cron (crond) après avoir ajouté une nouvelle tâche cron? Comment le faire correctement (en particulier dans un système Debian), et cela devrait-il être fait avec Sudo (comme Sudo service cron restart) même pour celui des utilisateurs normaux?

J'ai essayé:

/etc/init.d/cron restart

qui ne semble pas fonctionner (ni /etc/init.d/cron stop ou service cron stop) et se termine par le code retour 1.

Voici une partie de la sortie du message:

Étant donné que le script que vous essayez d'invoquer a été converti en tâche Upstart, vous pouvez également utiliser l'utilitaire stop (8), par exemple stop cron stop: message d'envoi rejeté, 1 règles correspondantes; type = "method_call", sender = ": 1.91" (uid = 1000 pid = 3647 comm = "stop cron") interface = "com.ubuntu.Upstart0_6.Job" member = "Stop" nom d'erreur = "(unset)" required_reply = "0" destination = "com.ubuntu.Upstart" (uid = 0 pid = 1 comm = "/ sbin/init")

(qu'est-ce que cela signifie?)

31
precise

Non, vous n'avez pas besoin de redémarrer cron, il remarquera les modifications apportées à vos fichiers crontab (soit /etc/crontab ou un fichier crontab d'utilisateurs).

En haut de votre/etc/crontab vous avez probablement (si vous avez l'implémentation Vixie de cron que l'IIRC est celui sur Debian):

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

La raison pour laquelle vous ne verrez peut-être pas de modifications spécifiques implémentées est si vous ajoutez des éléments, par exemple /etc/cron.daily et l'exécution quotidienne a déjà eu lieu.

Le message que vous obtenez est dû au fait que vous utilisez une ancienne façon de redémarrer cron sur votre système. La méthode recommandée (mais pas nécessaire si vous éditez simplement des fichiers cron) est la suivante:

 restart cron

Vous devez bien sûr redémarrer pour voir les effets d'une tâche cron @reboot

20
Timo

Un redémarrage peut ne pas être nécessaire. Comme je l'ai dit dans mes commentaires l'éditeur de texte que vous avez utilisé (celui qui est affecté à l'édition de cron- travaux) pour modifier la tâche doit être fermée ; il ne suffit pas d'enregistrer le contenu. (C'est ce que j'ai vécu. Modifier des tâches via nano et enregistrer avec Ctrl+O avec le fichier toujours ouvert n'applique pas les modifications immédiatement, mais seulement après la fermeture de l'éditeur avec Ctrl+X.)

Et comme mentionné dans cette réponse (par terdon ) le démon cron vérifierait, chaque minute, pour voir si un travail doit être exécuté et déclencher ceux qu'il doit.

3
precise