15 votes

Comment redémarrer le service cron sur OSX?

Nom du produit : Mac OS X
Version du produit : 10.11.6
Version de la compilation : 15G31

$ sudo cron restart
cron : le cron est déjà en cours d'exécution, pid : 257`

Aucune des réponses ici https://stackoverflow.com/questions/10193788/restarting-cron-after-changing-crontab-file semblent s'appliquer à OSX. Eh bien, celle ci-dessus est la plus proche mais elle semble juste me dire que cron fonctionne donc je n'ai pas à m'inquiéter de le redémarrer. Ce qui n'est pas le but de redémarrer quelque chose.

Comment puis-je arrêter et redémarrer le service cron sur un Mac?

2 votes

Que cherchez-vous à accomplir en redémarrant cron ?

2 votes

Je tente d'atteindre le redémarrage de cron; je ne vois aucun mal à confirmer que le service a absolument positivement vu les nouveaux fichiers crontab

11voto

klanomath Points 63400

Le démon cron est géré avec launchctl.

Si vous insistez pour le redémarrer, vous devez décharger et charger le démon de lancement respectif :

sudo launchctl unload /System/Library/LaunchDaemons/com.vix.cron.plist
sudo launchctl load /System/Library/LaunchDaemons/com.vix.cron.plist

Mais : ajouter ou supprimer des crontabs arbitraires ne devrait pas nécessiter de recharger le démon pour les activer ou les désactiver.

Le plist de démon de lancement ci-dessus contient une directive Watch Directory qui détecte la création et suppression des fichiers (crontab) ou des dates de modification, et "instruit" cron en conséquence.

6 votes

/System/Library/LaunchDaemons/com.vix.cron.plist: Opération non autorisée tant que la protection de l'intégrité du système est activée

5voto

Larry Athey Points 84
sudo pkill -f cron

Le LaunchDaemon a une section keepalive qui le redémarrera immédiatement.

1 votes

Veuillez utiliser la mise en forme du code pour, eh bien, le code et les commandes shell. Cela rend la lecture/reconnaissance plus facile et aide également les personnes utilisant des lecteurs d'écran.

0 votes

Les programmeurs utilisent des lecteurs d'écran? Euh, d'accord

0 votes

Vous pourriez être surpris. Quoi qu'il en soit, la plupart des visiteurs ici ne sont pas des programmeurs.

2voto

Douglas Points 10417

À partir de la page de manuel cron:

L'utilitaire cron est lancé par launchd(8) lorsqu'il détecte l'existence de /etc/crontab ou de fichiers dans /usr/lib/cron/tabs. Il ne devrait y avoir aucun besoin de le démarrer manuellement. Voir /System/Library/LaunchDaemons/com.vix.cron.plist pour plus de détails.

Donc, de manière intéressante, cron est lancé par launchd. Cependant, selon man crontab

(Note Darwin: Bien que cron(8) et crontab(5) soient officiellement pris en charge sous Darwin, leur fonctionnalité a été absorbée par launchd(8), qui fournit un moyen plus flexible d'exécuter automatiquement des commandes. Voir launchctl(1) pour plus d'informations.)

Ainsi, cron qui est lancé par launchd, a été désuet pour launchd. Utiliser cron revient à envelopper du bacon dans du bacon parce que vous voulez du bacon au goût de bacon.

En ce qui concerne le redémarrage de cron, il n'est pas nécessaire. Une fois qu'il voit un fichier crontab, il lancera automatiquement la tâche.

Cependant, il est fortement conseillé de commencer à planifier des tâches en utilisant launchd.

2 votes

Je ne fais pas confiance aux ordinateurs pour voir les modifications des fichiers tout le temps, donc j'aimerais confirmer qu'ils ont bien chargé les nouveaux fichiers en redémarrant.

2 votes

-1, répond à la question en disant "ne t'en fais pas"

1 votes

Si vous tapez crontab -l; tout ce qui est là est chargé.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X