use constant SOCK_PATH => '/tmp/catsock'; socket(Server, AF_UNIX, SOCK_STREAM,0) or die "socket: $!"; setsockopt(Server, SOL_SOCKET, SO_PASSCRED, 1) or die "SO_PASSCRED: $!\n"; unlink(SOCK_PATH); bind (Server, sockaddr_un(SOCK_PATH)) or die "bind: $!"; listen(Server, SOMAXCONN) or die "listen: $!"; for ( $waitedpid = 0; accept(Client,Server) || $waitedpid; $waitedpid = 0, close Client) { next if $waitedpid; my $n = unpack_sockaddr_un(getsockname(Client)); logmsg 'peer: ' . $n . "\n" . ; }