1 votes

travail cron sur le serveur web

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.

5voto

msbrogli Points 273

D'après ce que j'ai compris, vous voulez que votre processus continue à fonctionner après la fermeture de ssh. Vous pourriez utiliser screen .

3voto

Ned Points 51

Le moyen le plus simple est d'utiliser quelque chose comme nohup pour faire du processus un démon :

http://www.cyberciti.biz/tips/nohup-execute-commands-after-you-exit-from-a-Shell-prompt.html

1voto

SDOG Points 301

Ce que vous devez faire est :

nohup ./chemin_vers_votre_script.sh &

une fois que vous avez fait cela, vous pouvez vous déconnecter, fermer le terminal, peu importe et votre script continuera à s'exécuter jusqu'à ce que le serveur soit redémarré ou que vous tuiez le processus.

0voto

lava37 Points 71

Cron fonctionne périodiquement pour toujours. Les tâches Cron peuvent être exécutées à la minute, à l'heure, quotidiennement, hebdomadairement ou mensuellement. Voici une référence complète :

http://unixgeeks.org/security/newbie/unix/cron-1.html

Voici une référence rapide :

http://adminschoice.com/crontab-quick-reference

0voto

L'exécution à l'écran est parfaite pour les tests, mais à un moment donné, elle s'arrêtera pour une raison ou une autre (WebFaction aime tuer les processus lorsque vous utilisez trop de mémoire) et vous devrez alors la redémarrer automatiquement.

Supervisord ( http://supervisord.org/ ) est assez bon pour exécuter des choses et les redémarrer si elles échouent pour une raison quelconque. Il gère également les processus de "démonisation", c'est ainsi que cela s'appelle lorsque vous détachez un processus du terminal actuel afin qu'il continue à fonctionner après que vous ayez terminé votre saison (lorsque vous vous déconnectez de SSH), il est possible d'écrire du code dans votre script Python pour faire cela vous-même mais pourquoi s'embêter quand il y a des outils géniaux comme Supervisord ?

Bien sûr, il y a toujours la possibilité que Supervisord meure (ou soit tué). C'est là que vous pouvez utiliser Cron. Cron vous permet d'exécuter quelque chose périodiquement. Une propriété intéressante de la façon dont Supervisord est généralement configuré est que si vous essayez de le démarrer alors qu'il est déjà en cours d'exécution, il ne démarrera pas une seconde fois. Ainsi, si vous configurez une tâche Cron pour démarrer Supervisord toutes les 5 minutes, tout devrait bien se passer.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X