On 05/26/2009 05:53 PM, Adam Jackson wrote:
On Sat, 2009-05-23 at 13:53 +0200, Mildred Ki'Lya wrote:So, it happened again. There are 234 opened sockets, and the last file descriptor seems to be 255u, so perhaps there is a limit there. Any ideas on how to find the program responsible for that?This is a bit awkward since there's no obvious way to get the inode of the peer socket. The best you can do is hope that it was created immediately before the corresponding fd in the X server. So, something like this: --- #!/usr/bin/python from subprocess import Popen, PIPE client_sockets =  match = 0 ns = Popen(["netstat", "-an", "--unix"], stdout=PIPE) output = ns.communicate() for line in output.split('\n'): if line.find("X11-unix") != -1: match = 1 elif match: match = 0 inode = line.split() client_sockets.append(inode) lsof = Popen(["lsof", "-U", "+c0", "-w"], stdout=PIPE) output = lsof.communicate() for line in output.split('\n'): try: inode = line.split() if inode in client_sockets: print line except: pass --- - ajax
Thanks a lot, I used a similar shell script:
#!/bin/sh inodes="$(netstat -an --unix | grep X11-unix | sed 's/ */ /g' | sed 's/\[ ACC \]/[ ]/' | cut -d' ' -f7)" lsof +c0 | head -n 1 while read line; do inode="$(sed 's/ */ /g' <<<"$line" | cut -d' ' -f8)" #echo $inode if grep "^$inode$" <<< "$inodes" >/dev/null; then echo "$line" fi done <<<"$(lsof +c0 -w | tail -n +2)"
I removed the -U option of lsof, with it I couldn't find anything
I found a lot of instances of syndaemon, I think it's the cause.
-- Mildred Ki'Lya ╭───────── ｍｉｌｄｒｅｄ５９３＠ｏｎｌｉｎｅ．ｆｒ ────────── │ Jabber, GoogleTalk: <mildred jabber fr> │ Website: <http://ki.lya.online.fr> GPG ID: 9A7D 2E2B │ Fingerprint: 197C A7E6 645B 4299 6D37 684B 6F9D A8D6 9A7D 2E2B
Description: OpenPGP digital signature