I have been looking at running some twisted programs as a windows service.<div><br></div><div>So in the end I took a copy of twistd.py and adapted it to load my tac file and run it as a windows service.</div><div><br></div>
<div>Of course the windows service will run it in a separate thread. </div><div><br></div><div>I now have it running on XP, 2003 Server Twisted 10 and 12 and it all seemed fine.</div><div><br></div><div>However when I install it on Windows 7 I get an error<br clear="all">
<div><br></div><div><div>2012-10-23 07:54:49+0100 [-] Unhandled Error</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>Traceback (most recent call last):</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>  File &quot;C:\Python27\lib\site-packages\twisted\internet\base.py&quot;, line 413, in fireEvent</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>    DeferredList(beforeResults).addCallback(self._continueFiring)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>  File &quot;C:\Python27\lib\site-packages\twisted\internet\defer.py&quot;, line 297, in addCallback</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>    callbackKeywords=kw)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>  File &quot;C:\Python27\lib\site-packages\twisted\internet\defer.py&quot;, line 286, in addCallbacks</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>    self._runCallbacks()</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>  File &quot;C:\Python27\lib\site-packages\twisted\internet\defer.py&quot;, line 542, in _runCallbacks</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>    current.result = callback(current.result, *args, **kw)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>--- &lt;exception caught here&gt; ---</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>  File &quot;C:\Python27\lib\site-packages\twisted\internet\base.py&quot;, line 426, in _continueFiring</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>    callable(*args, **kwargs)</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>  File &quot;C:\Python27\lib\site-packages\twisted\internet\base.py&quot;, line 1153, in _reallyStartRunning</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>    self._handleSignals()</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>  File &quot;C:\Python27\lib\site-packages\twisted\internet\posixbase.py&quot;, line 277, in _handleSignals</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>    _SignalReactorMixin._handleSignals(self)</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>  File &quot;C:\Python27\lib\site-packages\twisted\internet\base.py&quot;, line 1118, in _handleSignals</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>    signal.signal(signal.SIGINT, self.sigInt)</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>exceptions.ValueError: signal only works in main thread</div></div><div><br></div><div><br></div>Looking around it would seem I need to tell the reactor  &#39;installsignalhandlers=0&#39;. I am not sure if I should do this with windows or not.</div>
<div><br></div><div>Has anyone got twistd.py to run as a service on windows because I would be glad to know what other people have done to solve the problem.</div><div><br></div><div>Thanks for any info.</div><div><br><b>John Aherne</b><div>
<b><br></b><div><b><img src="http://www.rocs.co.uk/Images/rocs_logo_sig.gif"><br></b></div><div><b><br></b></div><div><div><b><a href="http://www.rocs.co.uk" target="_blank">www.rocs.co.uk</a><br></b></div></div></div><div>
020 7223 7567</div><br>
</div>