Redémarrer cron après avoir changé le fichier crontab?

433

Dois-je redémarrer cron après avoir changé le fichier crontable?

bArmageddon
la source
8
Ne pas ignorer la réponse de @ leonbloy, mais j'ai trouvé que l'implémentation du premier travail cron de mon linux (un travail par minute correctement formaté) n'a pas fonctionné jusqu'à ce que le système soit redémarré. sudo service cron restartn'a pas été testé.
geotheory
1
@geotheory yikes J'espère vraiment que je n'aurai pas à redémarrer mon serveur prod chaque fois que je mettrai à jour mon crontab (et je ne le fais pas).
jcollum

Réponses:

614

Non.

Depuis la page de manuel de cron :

... cron examinera alors le temps de modification sur tous les crontabs et rechargera ceux qui ont changé. Ainsi cron n'a pas besoin d'être redémarré chaque fois qu'un fichier crontab est modifié

Mais si vous voulez simplement vous assurer que c'est fait de toute façon,

sudo service cron reload

ou

/etc/init.d/cron reload
leonbloy
la source
10
Si vous utilisez le dossier cron.d, les crontabs liés symboliquement ne seront pas rechargés. Comment puis-je forcer un rechargement?
CMCDragonkai du
13
Ah c'est aussi simple que ça. C'est maintenant sudo service cron restart.
CMCDragonkai
21
La meilleure option est le rechargement - il peut être lancé par un utilisateur non root:/etc/init.d/cron reload
Honza
8
@CMCDragonkai Peut-être crondau lieu de cron.
Cees Timmerman
33
Le seul problème avec cette réponse est qu'elle n'est pas toujours vraie. Voir le commentaire de la géothèque sous la question. Moi aussi, j'étais mordue par ça. J'ai apporté une modification au fichier crontab via sudo crontab -e, enregistré la modification par Ctrl + X, et je suis parti en supposant cronqu'il la reprendrait (en raison de cette réponse si fortement votée). Puis, quelques jours plus tard, mon client signale que le cron fonctionne toujours sur l'ancien cycle. Donc - honnêtement - si vous voulez être en sécurité - redémarrez simplement l'un cronou l' autre ou le système, et ne jouez pas avec les tests de perte de temps, ce que vous devrez faire malgré cette réponse très appréciée.
Dan Nissenbaum
53

Sur CentOS avec cPanel sudo /etc/init.d/crond reloadfait l'affaire.

Sur CentOS7: sudo systemctl start crond.service

Sheldmandu
la source
3
Merci pour la ligne CentOs 7
Mathieu de Lorimier
1
//, Pour recharger crond, plutôt que de simplement le démarrer sur le systemd de plus en plus horrible, exécutez sudo systemctl reload crond.service.
Nathan Basanese
@NathanBasanese Le rechargement cronsur SystemD est maintenant considéré comme de la magie noire: sudo systemctl reload crondéchoue avec Failed to reload cron.service: Job type reload is not applicable for unit cron.service.(Ubuntu 18.04). Lire: Attention, nous sommes tous pwned par le syndrome: "SystemD, il ne peut y en avoir qu'un". Si le rechargement ne se fait pas automatiquement dans les coulisses, vous êtes en panne! Ne pensez même pas à le réparer, comme vous l'avez fait au cours des 3 dernières (ou plus) décennies! Lire: Le monde de Windows a finalement avalé Debian: S'il y a quelque chose d'étrange sous le capot, que vas-tu faire? Redémarrer!
Tino
Le redémarrage est plus qu'un simple rechargement. N'y a-t-il pas une option de rechargement propre disponible pour Centos?
Ωmega
@Tino vous pouvez installer cronie
Bob
27

J'ai eu un problème similaire sur 16.04 VPS Digital Ocean. Si vous changez de crontabs, assurez-vous d'exécuter

sudo service cron restart 
Gyro
la source
Ça a marché pour moi. Merci
Tien Nguyen
Je vois que reloadc'est suffisant. Pas besoin restart. Merci. :)
Tien Nguyen
12

Selon la distribution, l'utilisation de "cron reload" peut ne rien faire. Pour coller un extrait de init.d / cron (debian squeeze):

reload|force-reload) log_daemon_msg "Reloading configuration files for periodic command scheduler" "cron"
    # cron reloads automatically
    log_end_msg 0
    ;;

Certains développeurs / mainteneurs se sont appuyés sur le rechargement, mais ce n'est pas le cas, et dans ce cas, il n'y a aucun moyen de forcer le rechargement. Je génère mes fichiers crontab dans le cadre d'un déploiement, et à moins que la longueur du fichier ne change, les modifications ne sont pas rechargées.

Tit Petric
la source
9

essayez celui-ci pour centos 7: service crond reload

Flair
la source
6

Essayez ceci: sudo cron reload cela fonctionne pour moi sur Ubuntu 12.10

jono
la source
Ne fonctionne pas sur mon Raspberry Pi 3+ avec Ubuntu 18.04.2 LTS
Jan
3

Essayez ceci service crond restart:, donc ce n'est crondpas le cas cron.

ako
la source
crondservice non reconnu. Cela fonctionne avec cronmoi. mon système d'exploitation est Ubuntu 18.04
Tien Nguyen
1

Il existe des cas où cron doit être redémarré pour que le script de démarrage fonctionne. Il n'y a rien de mal à redémarrer le cron.

sudo service cron restart

Mawty
la source
0

1) Si /var/spool/cron/crontabs/rootmodification de fichier via le client SFTP - besoin service cron restart. Le service de rechargement ne fonctionne pas.

2) Si éditer le fichier /var/spool/cron/crontabs/rootvia la console linux (nano, mc) - redémarrer PAS besoin.

3) Si éditer cron via crontab -e- redémarrer PAS besoin.

vebmaster
la source
0

Ubuntu 18.04 * Utilisation: /etc/init.d/cron {start | stop | status | restart | reload | force-reload}

Aqua Huang
la source