Executing a hidden/background program

J

jim3371

Using wxPython, I'm looking to build a GUI app for a daemon-based app,
on Win32 platform, how would I go about executing the daemon app so it
stays in the background when the Py app is running? It's critical that
the child process exit when the Py app exits/crashes.
 
M

Mike Driscoll

Jim,

Using wxPython, I'm looking to build a GUI app for a daemon-based app,
on Win32 platform, how would I go about executing the daemon app so it
stays in the background when the Py app is running? It's critical that
the child process exit when the Py app exits/crashes.

You probably want to create a Windows service with Python. There are
various ways to accomplish this. While I haven't done it myself, I
found you some links:

http://agiletesting.blogspot.com/2005/09/running-python-script-as-windows.html
http://essiene.blogspot.com/2005/04/python-windows-services.html
http://timgolden.me.uk/python/wmi.html

Then the service can basically listen for input. You could probably do
something similar by creating a local server with cherrypy or some
such. I like the pubsub module for communication in wxPython.
Fortunately you can use it outside of the toolkit as well:

http://pypi.python.org/pypi/pubsub/1 to 3

There's also a win32 mailing list for Python users. If you have
specific questions about creating a service, that's probably the best
place to ask. Here's a link to that as well:
http://mail.python.org/mailman/listinfo/python-win32

HTH

Mike
 
J

jim3371

You probably want to create a Windows service with Python. There are
various ways to accomplish this.

Was considering a Windows service too, however would like to avoid
that as non-Admin users may not be able to do that. While I'm not
familiar with threading, I'm considering starting a seperate thread
and use a function such as os.pexec that hangs until the external
daemon .exe exists.
 
I

imageguy

Was considering a Windows service too, however would like to avoid
that as non-Admin users may not be able to do that. While I'm not
familiar with threading, I'm considering starting a seperate thread
and use a function such as os.pexec that hangs until the external
daemon .exe exists.

Check out the wx.lib.delayedresults option in the demo.

Since wx.App needs to run as the main thread, you might be able to run
your as the 'delayedresult'. As for the main frame of your app,
simply Hide()/Show() when it needs to be visible. When the wx.App
closes, the thread running the service will automatically shut down.

Other than that ... I think it is a bit more complicated and will
probably require asyncore and/or asynchat.
g.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,020
Latest member
GenesisGai

Latest Threads

Top