That is the classical behaviour, possibly because of tradition
   where they relate to named pipes created with mknod(1) command.
     http://www.ecst.csuchico.edu/~beej/guide/ipc/usock.html
> What I do is create a unix socket in /tmp and wait for clients to
> connect in. The program removes the socket dentry when it shuts down,
> but it sometimes crashes and the socket remains there.
> 
> Is there some reason the socket should remain unless explicitely
> removed?
   Traditional is also to   unlink() the socket name just prior
   to bind(3):ing it just in case there is a left-over entity
   with that name.
   The object name (it is NAMED entity, after all) space is
   filesystem name space.   I don't see any reason why not:
      - There could pre-exist the named socket (at a R/O
        filesystem), and no new name needs to be allocated
        in the filesystem for it.
      - The entire named entity would not be allowed to
        exist purely in VFS space, that is: creation wise
        the permission verification could ignore location
        directory being on a read/only file system, and
        just use directory permissions.  (Questions about
        memory expenditure, etc.  all kinds of trade-offs.)
  What the new POSIX writes about the issue, that I haven't
  yet looked into.
> 			 Jan 'Bulb' Hudec <bulb@ucw.cz>
/Matti Aarnio
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/