[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] Fix bug #709 by daemonizing blktapctrl and closing stdin, stdout and stderr
On Mon, Jul 31, 2006 at 04:15:42PM +0100, Harry Butterworth wrote: > +static void daemonize(void) > +{ > + pid_t pid; > + > + /* Separate from our parent via fork, so init inherits us. */ > + if ((pid = fork()) < 0) > + DPRINTF("Failed to fork daemon\n"); It will be useful to know why fork() failed (i.e., print errno directly or use sterror_r() and friends). > + if (pid != 0) > + exit(0); If fork() failed, this will cause us to exit(0) which doesn't seem particularly appropriate. > + /* Session leader so ^C doesn't whack us. */ > + setsid(); In theory setsid() can fail. > + /* Let session leader exit so child cannot regain CTTY */ > + if ((pid = fork()) < 0) > + DPRINTF("Failed to fork daemon\n"); > + if (pid != 0) > + exit(0); Same comment as above. > + > +#ifndef TESTING /* Relative paths for socket names */ > + /* Move off any mount points we might be in. */ > + if (chdir("/") == -1) > + DPRINTF("Failed to chdir\n"); > +#endif > + /* Discard our parent's old-fashioned umask prejudices. */ > + umask(0); > + > + close(STDIN_FILENO); Mixed tabs and spaces, ugh. Also, fileno(stdin) is nicer. Cheers, Muli _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |