Re: [PATCH v2 1/2] daemon: move daemonize() to libgit.a
- From
Erik Faye-Lund <kusmabite@gmail.com>
- Date
- Feb 10, 2014, 11:04 UTC
- Message-ID
- <CABPQNSaNuCM5mNFF_74OPo+RYqZHgUPpw0k5HbaL=p54j48i4g@mail.gmail.com>
- In-Reply-To
- <1391843332-20583-1-git-send-email-pclouds@gmail.com>
On Sat, Feb 8, 2014 at 8:08 AM, Nguyễn Thái Ngọc Duy <pclouds@gmail.com> wrote:
Show 33 quoted lines
> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
> diff --git a/setup.c b/setup.c
> index 6c3f85f..b09a412 100644
> --- a/setup.c
> +++ b/setup.c
> @@ -787,3 +787,27 @@ void sanitize_stdfds(void)
> if (fd > 2)
> close(fd);
> }
> +
> +int daemonize(void)
> +{
> +#ifdef NO_POSIX_GOODIES
> + errno = -ENOSYS;
> + return -1;
> +#else
> + switch (fork()) {
> + case 0:
> + break;
> + case -1:
> + die_errno("fork failed");
> + default:
> + exit(0);
> + }
> + if (setsid() == -1)
> + die_errno("setsid failed");
> + close(0);
> + close(1);
> + close(2);
> + sanitize_stdfds();
> + return 0;
> +#endif
> +}Nice change.
Just a nit: When I added the NO_POSIX_GOODIES-flag, Junio wanted the implementations to be separate.