That shouldn't happen, because syslogd delays its exit until after
its log sockets have been established.
Maybe this will help (but I think not):
Index: syslogd.c
===================================================================
RCS file: /cvs/src/usr.sbin/syslogd/syslogd.c,v
retrieving revision 1.101
diff -u -p -r1.101 syslogd.c
--- syslogd.c 21 Apr 2008 22:09:51 -0000 1.101
+++ syslogd.c 20 Jul 2008 10:18:24 -0000
@@ -485,7 +485,8 @@ main(int argc, char *argv[])
break;
default:
close(lockpipe[1]);
- read(lockpipe[0], &c, 1);
+ while (read(lockpipe[0], &c, 1) == -1 && errno == EINTR)
+ ;
_exit(0);
}
}