Comment puis-je demander à mon serveur web (Webfaction) d'exécuter un fichier Python et de le laisser tourner indéfiniment ? Quelqu'un m'a dit que je devrais utiliser cron
mais je n'ai pas trouvé de bon matériel sur la façon de l'exécuter une fois, et qu'il ne s'arrête pas.
Réponse
Trop de publicités?La meilleure méthode pour quelque chose comme ça est la suivante :
1) Écrire le script de telle sorte qu'il vérifie d'abord un fichier de verrouillage pour s'assurer qu'il n'y a pas d'autres copies déjà en cours d'exécution et/ou vérifier que le processus n'est pas déjà en cours d'exécution.
2) Mettez une entrée dans cron pour lancer le script de temps en temps, disons une fois par heure.
3) Votre script pourrait utiliser une boucle while(1) pour se maintenir en exécution "pour toujours". Cependant, il est préférable de ne jamais faire tourner un script à l'infini car vous pourriez avoir des fuites de mémoire potentielles qui s'accumulent sur une longue période et finissent par provoquer un swap de votre système et vous avez alors un système vraiment lent. Faites-le tourner pendant plusieurs milliers d'itérations ou arrêtez-le au bout d'un certain temps. Cron le relancera au prochain créneau horaire.
4) Enregistrez votre sortie en utilisant >> rediriger vers un fichier journal afin que vous puissiez attraper tout message que vous pourriez vouloir sortir pour le statut.
- Réponses précédentes
- Plus de réponses