[Python-Dev] Internal counter to debug leaking file descriptors

Giampaolo Rodolà g.rodola at gmail.com
Fri Sep 3 12:09:50 CEST 2010


> Of course it would be nice to get access to FD stack so that a
> full filename can also be retrieved in this case.

On Linux, this can be easily achieved by using /proc.
You can take a look at how this is done in the current development
version of psutil:
http://code.google.com/p/psutil/source/browse/trunk/psutil/_pslinux.py?spec=svn633&r=630#266
Usage:

>>> import psutil, os
>>> this_process = psutil.Process(os.getpid())
>>> f = open('file.ext', 'w')
>>> this_process.get_open_files()
['/home/giampaolo/svn/psutil/file.ext']

Same for sockets, a bunch of lines later:
http://code.google.com/p/psutil/source/browse/trunk/psutil/_pslinux.py?spec=svn633&r=630#284

>>> import socket
>>> s = socket.create_connection(('google.com', 80))
>>> this_process.get_connections()
[connection(family=2, type=1, local_address=('192.168.1.43', 38067),
remote_address=('72.14.234.104', 80), status='ESTABLISHED')]
>>>

Hope this helps



--- Giampaolo
http://code.google.com/p/pyftpdlib/
http://code.google.com/p/psutil/


More information about the Python-Dev mailing list