<br><br><div class="gmail_quote">On Tue, May 12, 2009 at 4:08 PM, Chris Curvey <span dir="ltr">&lt;<a href="mailto:chris@chriscurvey.com">chris@chriscurvey.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I&#39;m attempting to wrap up a Python program and turn it into a service, using the method listed in Mark Hammond&#39;s book (*not* using py2exe).   The program spawns a bunch of threads using the &quot;subprocess&quot; module.  If I run the program from the command line, everything works fine.  If I run it as a service, any kind of exception seems to stop the affected thread immediately.  Exceptions are not bubbling up to the relevant try/except block.<br>

<br>The only thing I can think of right now is that I&#39;m running on a 64-bit version of Windows, and that the win32 packages won&#39;t fully work in that environment.   (Although the startup string for Python says that it&#39;s the 32 bit Python [MSC  v.1310 32 bit (Intel) ], so I think that&#39;s a wild goose chase.)<br>

<br>Anyone have any ideas?  I&#39;ll try to put together a succinct test case that I can share.<br><font color="#888888"><br>-Chris<br>
</font></blockquote></div><br>I found the problem, but before I wrote a sharable test case.<br><br>The core of my problem was that I had misconfigured the logging module.  (By calling logging.config.fileConfig in two places.).  Then what happened was I would try to log something, which would cause an exception to be raised by the logging module.  And the default behavior for the logging module is to print errors to stdout, which does not exist because we&#39;re running in a thread.<br>
<br>So there were several solutions to this problem.<br><br>1) Don&#39;t misconfigure the loggin module (duh!), or<br>2) set logging.raiseExceptions = 0, so that internal exceptions in the logging module are not raised, or<br>
3) Write my own custom logging handler and override the handleError() method so that it does not try to write to stdout.<br><br>Thanks for the help!<br><br>-Chris<br clear="all"><br>-- <br>Corruptissima republica plurimae leges<br>