pywin32 创建事件与 Apache
我有一个用Django1.1.1搭建的网站,部署在Apache2.0上。在后台,我有一个启动脚本,它会启动三个Python进程,这些进程和前端进行交互。其中一个进程使用了Windows事件(通过CreateEvent),用来和Apache进行通信。
我的问题是,当我先运行启动脚本再启动Apache时,一切都正常,但如果我先启动Apache再运行启动脚本,那个使用Windows事件的进程就不会启动。在命令行手动启动这个进程时,它会报错,错误信息是:
pywintypes.error: (5, 'CreateEvent', 'Access is denied.')
我觉得这可能是权限问题,因为Apache是以SYSTEM用户身份运行,而启动脚本是以我的身份运行。有没有什么办法可以解决这个问题?也可能是其他原因,有什么想法吗?我对Windows不太熟悉,请多多包涵。顺便说一下,我用的是Windows XP和Python 2.4。
谢谢!
更新:
我最终使用了一个Python的示例代码控制Windows服务,这样可以在我的脚本运行后始终启动Apache服务。我的问题解决了!
1 个回答
0
你在调用 CreateEvent 的时候,有没有通过 lpEventAttributes 参数指定一个 安全描述符?
想了解更多细节,可以查看以下页面的第5部分(同步对象的安全性和访问权限):