On Oct 18, 2010, at 3:10 PM, Elizabeth Liao wrote:

> Sorry about that.  I just started using twisted so I'll try to be more 
> specific.
> 
> We have 2 different twisted plugins that uses shared code.   Each of these 
> plugins is run as a  TCPClient on separate machines.
> 
> What would like to do is to somehow identify what twisted services/plugins 
> are running because different things happen depending on what plugin is 
> currently in use.  We are running on Linux wanted to see if there was an easy 
> way of doing that using the twisted libraries.  I suppose one solution is to 
> get a list of processes running and parse that but I would rather not do that.
> 
> Thanks.
> 
> Liz

Sorry, but there is no easy API to do this using Twisted.  It's not really 
clear to me how such an API could be meaningful, either, given that any Twisted 
plugin could easily invoke any arbitrary python code that it wants to, 
including other Twisted plugins.  But if you have a detailed specification for 
how it might work, please feel free to file a ticket.

One way you could deal with this would be to have a dedicated UNIX socket at a 
well-known path for your particular application (e.g. 
/tmp/.your-app/global-socket), and connect to that socket to identify the 
current system's role.  This requires a little more work, but has the advantage 
that if you go with an extensible protocol such as AMP, you can extend this 
communication mechanism to allow arbitrarily detailed interrogation depending 
on your needs in the future.

If you wanted to go with the 'listing processes' route (it is definitely 
simpler), you don't have to parse it yourself.  Something like this with the 
'psi' module (<http://pypi.python.org/pypi/PSI>) might do what you want:

>>> from psi.process import ProcessTable
>>> pt = ProcessTable()
>>> for p in pt.values():
...   if 'twistd your-app' in p.command:
...     print p.pid


_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

Reply via email to