Using subprocess.Popen() in a Windows service
yomgui
not at valid.com
Wed Nov 5 20:23:40 EST 2008
hi,
this is how i do it:
from subprocess import Popen, PIPE, call, check_call
if sys.platform == 'win32':
net.processWithoutGui = Popen(
['python', self.temporaryFilename,'-w'],
shell=False, cwd=lNetworkDir)
else:
net.processWithoutGui = Popen(
[self.temporaryFilename,'-w'],
shell=False, cwd=lNetworkDir)
hope it helps
yomgui
Mark Shewfelt wrote:
> Hello,
>
> I am attempting to use Popen() in a Windows service. I have a small
> Win32 .exe that I normally run through the os.popen2() function. I've
> written a class to work with the input and output parameters that are
> passed and captured from this exe. When I use the class outside of a
> service using either subprocess.Popen or os.popen2 work just fine.
>
> When I use this class inside a Windows service it doesn't work. It
> doesn't crash the service or anything but there are no values returned
> from the Popen. Here's how I'm calling Popen:
>
> p = subprocess.Popen( cmd, shell=True, bufsize=128,
> stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
> cwd="C:\\path_to_exe\\" )
> p.wait()
> (modbus_stdin, modbus_stdout)=(p.stdin,p.stdout)
> lines = modbus_stdout.readlines()
>
> While this doesn't fail there is nothing in the lines variable when it
> finishes.
>
> I am using Python 2.5 on a Windows XP Professional machine. Any help
> would be greatly appreciated.
>
> Best Regards,
>
> Mark Shewfelt
More information about the Python-list
mailing list