J'utilise l'adaptateur apache2 mod_wsgi pour un site django et j'appeler un processus bash dans une vue, en utilisant l'habituelComment appeler le processus bash depuis django/wsgi?
...
p = subprocess.Popen("/home/example.com/restart-tomcat.sh", shell=True)
sts = os.waitpid(p.pid, 0)[1]
...
Ce code fonctionne parfaitement à partir d'un shell python habituel mais ne fait rien (je peut tracer maintenant) lorsqu'il est appelé dans django. Est-ce que je manque des contraintes wsgi? Le script a 755 perms, donc il devrait être exécutable.
Un test rapide
p = subprocess.Popen("date >> home/example.com/wsgi-test.txt", shell=True)
sts = os.waitpid(p.pid, 0)[1]
révèle qu'il ne s'exécute même pas les commandes triviales. Je n'ai pas d'idées en ce moment et je suis reconnaissant pour toute contribution.
Merci.
Merci, a fait un test; il ne semble pas exécuter quoi que ce soit, il ne déclenche pas non plus d'erreur OSError .. Tomcat fonctionne sur un port non-proviledged, donc cela ne devrait pas poser de problème – chang
Je veux presque demander si vous pouvez faire quelque chose comme ouvrir un fichier normal à ce chemin en utilisant le fichier python io, 'h = open ('/ home/example.com/test.txt', 'a'); h.write ('ligne \ n'); h.close(); Vraiment bizarre, si toutes les permissions sont correctes. Ça devrait marcher. – synic
Merci pour votre commentaire. Je suis en train de vérifier toutes les permissions en ce moment .. en particulier celles nécessaires au bon redémarrage de tomcat. – chang