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

29

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é un nouveau travail cron? Comment faire cela 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 ne fonctionne /etc/init.d/cron stopni service cron stop) et se termine avec 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 ça veut dire?)

précis
la source

Réponses:

18

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

En haut de votre / etc / crontab vous avez probablement (si vous avez l'implémentation Vixie de croncet IIRC est celle 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.dailyet que 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 afin de voir les effets d'un travail cron @reboot

Timo
la source
ce n'était pas un travail de redémarrage mais toutes les n minutes de travail cron .. et le redémarrage semble fonctionner avec sudo avec les anciennes et les nouvelles façons .. mais pas pour un utilisateur normal ..
précis
Comment éditez-vous la crontab? En tant qu'utilisateur avec crontab -e?
Timo
oui .. crontab -eest ce que j'utilise ..
précis
Avez-vous Vixie Cron (regardez man cron-> Nom)
Timo
1
Il semble que l'enregistrement des modifications ne soit pas suffisant, et les travaux planifiés ne s'appliquent qu'après la nanofermeture de l'éditeur de texte (j'utilise )! ..et c'est peut-être ce qui a causé la confusion ...
précis
3

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 des tâches cron) pour éditer la tâche doit être fermé ; il ne suffit pas d'enregistrer le contenu . (C'est ce que j'ai vécu. Modifier des tâches via nanoet enregistrer avec Ctrl+ Oavec 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.

précis
la source