我正在开发带有 Web 界面的小型应用程序,用于自动测试和升级我的硬件产品。应用程序使用 Apache 2 Web 服务器和 CGI 技术(python 语言)。在某一时刻,我必须运行外部 Windows 应用程序(用于 Zmodem 文件传输的 TeraTerm Pro)。Python代码:
pipe=subprocess.Popen("run_me.bat", shell=True, universal_newlines=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
TeraTerm 没有启动。好吧,它开始了(我在进程列表中看到它),但窗口没有出现,也没有任何反应。当我从 windows 命令启动 python 脚本时,当 cmd.exe 启动时,这个 Start->Run... cmd.exe 并键入“python.exe transfer.py”,一切正常,TeraTerm 窗口出现,并且文件传输开始。
我找到了部分解决方案。当我在 Windows 控制台窗口中以用户身份启动 Apache2 时,一切正常文件。当 Apache2 作为服务运行时 - 出现问题。我注意到当 Apache2 作为服务运行时,运行控制台应用程序没有问题。运行基于窗口的应用程序存在问题。
是否可以将 Apache2 作为服务并毫无问题地运行任何窗口应用程序?部分解决方案是不可接受的,因为在正常工作期间,许多控制台窗口会显示半秒。这很令人不安。