os.system in a service

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Thu Aug 6 10:35:57 CEST 2009

En Thu, 06 Aug 2009 03:59:13 -0300, Diez B. Roggisch <deets at nospam.web.de>  
> Gabriel Genellina schrieb:
>> En Wed, 05 Aug 2009 13:07:39 -0300, Lawrence Wong  
>> <lawrencew00 at hotmail.com> escribió:

>>> I wrote a program which runs a .bat file using os.system like:  
>>> 'os.system(pathToBatFile)' and everything was good.  Then I decided to  
>>> turn my program into a service as opposed to being run with the  
>>> command prompt showing.  When my program became a service, I noticed  
>>> that the os.system command to run my .bat file was no longer working.  
>>> [...]

>>  Capture stdout and stderr and you'll probably see the error message:
>>  some_command >logfile.txt 2>&1
> Which isn't possible as a service.

Why you say so? One should avoid using mapped drive letters and network  
shares -- that probably aren't defined for the account under which the  
service runs. And always use absolute paths. And ensure the account has  
write permissions for the output file... But other than that, os.system  
should work fine. Do I miss something?

> The OP might consider using suprocess istead of os.system, and establish  
> pipes to read the output of the command into a file he can analyze.

That's a good idea, although overkill for simple cases I'd say.

Gabriel Genellina

More information about the Python-list mailing list