我試圖執行一個shell命令以及使用python 信號模塊殺死它。ValueError異常:信號只能在主線程 - Django的 - mod_wsgi的
我知道信號只與主線程工作,所以我運行Django開發服務器,
python manage.py runserver --nothreading --noreload
,它工作正常。
但是當我部署與Apache/mod_wsgi的Django的應用程序,它顯示了以下錯誤:
[Fri Sep 12 20:07:00 2014] [error] response = function.call(request, **data)
[Fri Sep 12 20:07:00 2014] [error] File "/Site/cloud/lib/python2.6/site-packages/dajaxice/core/Dajaxice.py", line 18, in call
[Fri Sep 12 20:07:00 2014] [error] return self.function(*args, **kwargs)
[Fri Sep 12 20:07:00 2014] [error] File "/Site/cloud/soc/website/ajax.py", line 83, in execute
[Fri Sep 12 20:07:00 2014] [error] data = scilab_run(code, token, book_id, dependency_exists)
[Fri Sep 12 20:07:00 2014] [error] File "/Site/cloud/soc/website/helpers.py", line 58, in scilab_run
[Fri Sep 12 20:07:00 2014] [error] output = task.run().communicate()[0]
[Fri Sep 12 20:07:00 2014] [error] File "/Site/cloud/soc/website/timeout.py", line 121, in run
[Fri Sep 12 20:07:00 2014] [error] lambda sig,frame : os.killpg(self.pgid,self.timeoutSignal))
[Fri Sep 12 20:07:00 2014] [error] ValueError: signal only works in main thread
這裏是我的Apache虛擬主機設置:
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 to the pro克其採用信號和我在Django的應用程序中使用的一個。
任何幫助,將不勝感激。