diff options
Diffstat (limited to 'proxy/src/gp_init.c')
-rw-r--r-- | proxy/src/gp_init.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/proxy/src/gp_init.c b/proxy/src/gp_init.c index 8d0ebd8..c364edc 100644 --- a/proxy/src/gp_init.c +++ b/proxy/src/gp_init.c @@ -31,6 +31,8 @@ #include <fcntl.h> #include <errno.h> #include <string.h> +#include <unistd.h> +#include <stdio.h> #include "gp_proxy.h" void init_server(bool daemonize) @@ -176,3 +178,34 @@ void init_proc_nfsd(struct gp_config *cfg) return; } } + +void write_pid(void) +{ + pid_t pid; + FILE *f; + int ret; + + pid = getpid(); + + f = fopen(GP_PID_FILE, "w"); + if (!f) { + ret = errno; + GPDEBUG("Failed to open %s: %d (%s)\n", + GP_PID_FILE, ret, strerror(ret)); + return; + } + + ret = fprintf(f, "%d\n", pid); + if (ret < 0) { + GPDEBUG("Failed to write pid to %s\n", GP_PID_FILE); + fclose(f); + return; + } + + ret = fclose(f); + if (ret != 0) { + GPDEBUG("Failed to close %s: %d (%s)\n" + GP_PID_FILE, ret, strerror(ret)); + return; + } +} |