diff options
author | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2014-02-08 14:08:51 +0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-02-10 10:46:35 -0800 |
commit | de0957ce2e88b8ad639f1e4a7197eb556e114a1c (patch) | |
tree | 6596fe5a6874207530dfa0ad737ea066ca51c22e /daemon.c | |
parent | 79fcbf7e703ca5805ebd46b2c7e09d0703f1c1ff (diff) | |
download | git-de0957ce2e88b8ad639f1e4a7197eb556e114a1c.tar.gz |
daemon: move daemonize() to libgit.a
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'daemon.c')
-rw-r--r-- | daemon.c | 30 |
1 files changed, 4 insertions, 26 deletions
@@ -1056,11 +1056,6 @@ static void drop_privileges(struct credentials *cred) /* nothing */ } -static void daemonize(void) -{ - die("--detach not supported on this platform"); -} - static struct credentials *prepare_credentials(const char *user_name, const char *group_name) { @@ -1102,24 +1097,6 @@ static struct credentials *prepare_credentials(const char *user_name, return &c; } - -static void daemonize(void) -{ - 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(); -} #endif static void store_pid(const char *path) @@ -1333,9 +1310,10 @@ int main(int argc, char **argv) if (inetd_mode || serve_mode) return execute(); - if (detach) - daemonize(); - else + if (detach) { + if (daemonize()) + die("--detach not supported on this platform"); + } else sanitize_stdfds(); if (pid_file) |