normally, renaming a file in use updates its name in /proc/X/fd but this does not work for sockets. And so fuser fails to tell me about the process using the socket when renamed. using ext4 of course i5:~/.kajonggserver$ fuser socket /home/wr/.kajonggserver/socket: 27557 i5:~/.kajonggserver$ l /proc/27557/fd/3 lrwx------ 1 wr wr 64 Jul 18 22:00 /proc/27557/fd/3 -> socket:[1344224] i5:~/.kajonggserver$ mv socket X i5:~/.kajonggserver$ fuser X i5:[Exit 1 (SIGHUP)]~/.kajonggserver$ l /proc/27557/fd/3 lrwx------ 1 wr wr 64 Jul 18 22:00 /proc/27557/fd/3 -> socket:[1344224] Linux i5 3.2.0-26-generic #41-Ubuntu SMP Thu Jun 14 17:49:24 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
(In reply to comment #0) > using ext4 of course I doubt that this is unique to ext4, is it?
I also have one ext3 - and yes, ext3 behaves the same way.
Sockets live in their own namespace - the path to it is just a reference to the object.