Puis-je exécuter un script Python en tant que service?
Est-il possible d'exécuter un script Python comme un service d'arrière-plan sur un serveur web? Je veux faire cela pour communication par socket.
Il est possible, pour une réponse plus détaillée, veuillez fournir plus d'informations: quel système d'exploitation utilisez-vous, voulez-vous démarrer le service sur reboot etc.
Windows ou Unix en Environnement?
Pense que "les serveurs Unix/linux", que les hôtes de sites web ont généralement.
Windows ou Unix en Environnement?
Pense que "les serveurs Unix/linux", que les hôtes de sites web ont généralement.
OriginalL'auteur Robinicks | 2009-09-14
Vous devez vous connecter pour publier un commentaire.
Vous pouvez en faire un démon. Il y a un PEP pour une solution plus complète, mais j'ai trouvé que cela fonctionne bien.
renifler? Voulez-vous dire de vérifier si le démon est déjà en cours d'exécution? si oui, c'est fait dans une autre procédure, avant que l'appel ci-dessus.
belle démonstration, très amusant ! Il y a beaucoup de méthode pour ce faire python-démon, sous-processus avec le custom shell appels (nohup, &), mais c'est très simple à comprendre. Sympa 🙂
dans la pratique, la diabolisation de la partie peut être à l'extérieur (systemd, supervisord). Pour une application web, votre code est encore plus éloigné de la diabolisation, par exemple, tous vous avez besoin est de créer une application wsgi sans se soucier de la façon dont il est déployé (e.g, flacon de déploiement).
OriginalL'auteur Robert
Vous pourriez vouloir vérifier Tordu.
Twisted est une bibliothèque python pour écrire des serveurs. Une fois que vous écrivez un serveur tordus, vous pouvez utiliser 'twistd -y server.py" pour l'exécuter en tant que démon
OriginalL'auteur Fragsworth
Il est très utile Pypi paquet qui est la base pour mes démons écrit en Python.
OriginalL'auteur jldupont
sur XP et versions ultérieures, vous pouvez utiliser le sc.exe programme à utiliser .exe en tant que service:
Vous pouvez commencer votre pythonscript par le démarrage de l'interpréteur python avec votre script comme argument:
Essayez py2exe py2exe.org
vous ne pouvez démarrer l'interpréteur python avec votre script comme argument: python.exe myscript.py
Je suis sûr que vous ne pouvez pas utiliser sc.exe pour faire tout processus de service. Il doit mettre en œuvre le Service Windows interface, telle que celle prévue par la win32serviceutil module (partie de pywin32).
OriginalL'auteur Peter Parker
En supposant que c'est pour Windows, voir cette recette à base de srvany
OriginalL'auteur mjv
Si l'on parle de linux, il est aussi facile que de faire quelque chose comme ./myscript.py &
Ce qu'André a dit. J'ai négligé de mentionner nohup parce que j'ai l'habitude il suffit d'exécuter l'écran et se détacher, donc il n'y a aucun besoin pour moi de le faire. Ces downvoters sont vicieux.
Mais même si vous êtes en cours d'exécution de l'écran, vous n'avez pas créé un véritable démon, c'est encore un enfant de votre écran session. nohup n'est pas la meilleure solution, mais c'est un moyen rapide pour exécuter une fois un démon.
en.wikipedia.org/wiki/Daemon_%28computer_software%29 "un démon est un programme informatique qui s'exécute en arrière-plan". Je pense que c'est admissible.
Je ne dis pas
nohup ... &
ne fonctionne pas, je dis simplement que nous devons dire aux gens comment faire les démons qui ont le bon processus parent, d'avoir le bon umask, sont dans le bon répertoire de travail, ne sont pas, par inadvertance, prenez un contrôle de l'ats, et ont leur sortie correctement redirigés.OriginalL'auteur Unknown