diff options
author | Simo Sorce <simo@redhat.com> | 2013-03-22 09:05:06 -0400 |
---|---|---|
committer | Simo Sorce <simo@redhat.com> | 2013-03-22 11:34:42 -0400 |
commit | 1955a2d57d6d6ff3d4aa6dcdbc890d9c44417f7f (patch) | |
tree | 87a56d0ebb1e1e733a20528541fb8937ef31ccf3 /proxy/src/gp_init.c | |
parent | e9623f5f05053f215c71dbf37d034ae98f1f1c36 (diff) | |
download | gss-proxy-1955a2d57d6d6ff3d4aa6dcdbc890d9c44417f7f.tar.gz gss-proxy-1955a2d57d6d6ff3d4aa6dcdbc890d9c44417f7f.tar.xz gss-proxy-1955a2d57d6d6ff3d4aa6dcdbc890d9c44417f7f.zip |
Write pid file at startup.
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; + } +} |