Python Django应用程序在Apache上部署时停止工作(子进程运行,但失败)

Python Django应用程序在Apache上部署时停止工作(子进程运行,但失败),python,django,apache,subprocess,mod-wsgi,Python,Django,Apache,Subprocess,Mod Wsgi,我的Django应用程序在使用mod_wsgi部署到Apache上时停止工作。 它在Windows服务器上运行。该应用程序调用一个名为rex Alchemy Remote Executor的windows可执行文件,该文件在另一个远程windows框上执行命令 process = subprocess.Popen( ['rex',ip,usr,pwd,command], stdout=subprocess.PIPE, universal_newlines=True ) out, err = p

我的Django应用程序在使用mod_wsgi部署到Apache上时停止工作。 它在Windows服务器上运行。该应用程序调用一个名为rex Alchemy Remote Executor的windows可执行文件,该文件在另一个远程windows框上执行命令

process  = subprocess.Popen( ['rex',ip,usr,pwd,command], stdout=subprocess.PIPE, universal_newlines=True )
out, err = process.communicate() 
这一切在开发中都可以很好地工作,但是当使用mod_wsgi部署在Apache上时,它就不起作用了!rex程序仍在运行,但无法完成其任务,并给出以下消息:

Failed to execute the program: A specified logon session does not exist. It may already have been terminated.
因此,rex程序正在运行,但当它从Apache派生出来时,它无法进行所需的连接或其他操作。似乎Apache正在以某种方式在rex.exe完成之前关闭连接


有什么想法吗?

当部署到一个windows服务时,您作为一个不同的用户运行总是一个挑战,而不是您在开发时作为一个真正的用户运行它。我在编写作为服务运行的更新程序时遇到了各种各样的问题,比如文件权限问题。您是否可以尝试以运行Apache服务的同一用户身份登录Windows,并从那里尝试rex可执行文件?如果幸运的话,您可能能够让rex在您交互的地方出现故障,并且可以对其进行故障排除


但是基本的想法是在apache服务之外复制故障,然后做任何需要的事情让它在服务的权限下运行,然后您就可以修复了。可能是您的rex程序正在尝试读取或写入配置文件之类的文件?它没有权限。

谢谢你的回答,但我认为这不是权限的问题。Apache服务以系统用户帐户或其他身份运行。如何以该用户的身份登录?。我确实尝试过在我自己的帐户下运行Apache,并且得到了相同的结果。我认为这与网络连接有关——Apache产生的进程无法保持连接打开。对这些过程是否有限制?是否有阻塞的端口?