On Thu, Dec 11, 2008 at 03:43:48PM -0800, Bill Shannon wrote: > I filed http://defect.opensolaris.org/bz/show_bug.cgi?id=5788
Indeed: $SRC/cmd/fs.d/autofs/autod_main.c has this: 178 #ifndef DEBUG 179 pid = fork(); 180 if (pid < 0) { 181 perror("cannot fork"); 182 exit(1); 183 } 184 if (pid) 185 exit(0); 186 #endif Why that's ifndef'ed, I don't know. Also, there's this oddity in automount.h: #ifndef _REENTRANT #define fork1 vfork #define rpc_control(a, b) 1 #endif And, further, automountd forks again: 217 pid = fork1(); 218 if (pid < 0) { ... 230 } else if (pid > 0) { 231 /* this is the door server process */ 232 automountd_wait_for_cleanup(pid); 233 } where automountd_wait_for_cleanup() just waits for the child and then exits. The parent there seems to exist to serve door requests on did_fork_exec and did_exec_map, but why must that be done in a separate process when both processes run with the same credentials and privileges? Very odd. Nico --