我试图执行一个shell命令,并使用pythonsignal模块杀死它。在
我知道信号只适用于主线程,所以我运行Django开发服务器
python manage.py runserver --nothreading --noreload
而且效果很好。在
但是,当我使用Apache/mod_wsgi部署django应用程序时,它显示以下错误:
^{pr2}$以下是我的apache virtualhost设置:
WSGIDaemonProcess testcloud display-name=scilab_cloud user=apache group=apache threads=1
WSGIProcessGroup testcloud
WSGIScriptAlias / /Site/cloud/soc/soc/wsgi.py
WSGIImportScript /Site/cloud/soc/soc/wsgi.py process-group=testcloud application-group=%{GLOBAL}
我也有以下设置以外的虚拟主机在httpd.conf公司名称:
WSGIRestrictSignal Off
WSGISocketPrefix /var/run/wsgi
Here is the link到使用信号的程序,以及我在django应用程序中使用的那个。在
任何帮助都将不胜感激。在
我不确定能不能那么容易地做到,至少用mod\wsgi不行。是否线程化的决定是apache和mod_wsgi中的构建和运行时选项的总和,这两个选项在默认情况下都设置为threading。在
我会给你指出关于这一点的文档,但我只能发布两个链接,因此我认为最好用它们来提出解决方案:
我有从python使用sh运行shell命令的非常好的经验,它甚至有一个异步执行模块。也许您可以启动运行shell命令的python代码,并在需要时处理回调对象。在
或者,更好的是,当
sh
要求您在处理信号时有一些顾虑,您可以在不使用异步执行模块的情况下运行它,但是在另一个带有multiprocessing.Proces的进程中,您可以使用object.terminate()
杀死一个Process
对象相关问题 更多 >
编程相关推荐