103 votes

Comment configurer une tâche cron pour exécuter un exécutable toutes les heures ?

J'ai besoin de configurer une tâche cron qui exécute un exécutable compilé en utilisant gcc une fois toutes les heures.

Je me suis connecté en tant que root et j'ai tapé crontab -e

Puis j'ai entré ce qui suit et j'ai enregistré le fichier.

0 * * * *  /path_to_executable

Cependant, le travail cron ne fonctionne pas.

Je vois que lorsque je tape /...path_to_executable j'obtiens un défaut de segmentation. Je ne peux exécuter l'exécutable qu'à partir du dossier dans lequel il se trouve. Y a-t-il un moyen de résoudre ce problème ?

172voto

joast Points 858
0 * * * * cd folder_containing_exe && ./exe_name

devrait fonctionner à moins qu'il y ait quelque chose d'autre qui doit être configuré pour que le programme s'exécute.

8voto

David Thornley Points 39051

La solution pour résoudre ce problème est de découvrir pourquoi vous obtenez le défaut de segmentation, et de le corriger.

6voto

Marek Skiba Points 1161

Vous pouvez également utiliser l'instant @hourly de 0 * * * *

5voto

James Gentes Points 194

Si vous utilisez Ubuntu, vous pouvez mettre un script shell dans l'un de ces répertoires : /etc/cron.daily, /etc/cron.hourly, /etc/cron.monthly ou /etc/cron.weekly.

Pour plus de détails, consultez cet article : https://askubuntu.com/questions/2368/how-do-i-set-up-a-cron-job

2voto

Jayan Points 7171

Voulez-vous dire que l'exécutable ne fonctionne pas, s'il est appelé à partir d'un autre répertoire ? C'est plutôt un bug sur l'exécutable. Une raison possible pourrait être que l'exécutable nécessite des libraires partagés à partir du dossier installé. Vous pouvez vérifier la variable d'environnement LD_LIBRARY_PATH

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X