summaryrefslogtreecommitdiffstats
path: root/libexec/lukemftpd/nbsd_pidfile.h
diff options
context:
space:
mode:
Diffstat (limited to 'libexec/lukemftpd/nbsd_pidfile.h')
-rw-r--r--libexec/lukemftpd/nbsd_pidfile.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/libexec/lukemftpd/nbsd_pidfile.h b/libexec/lukemftpd/nbsd_pidfile.h
new file mode 100644
index 0000000..23dbe38
--- /dev/null
+++ b/libexec/lukemftpd/nbsd_pidfile.h
@@ -0,0 +1,30 @@
+/* $FreeBSD$ */
+
+#include <sys/stdint.h>
+#include <sysexits.h>
+
+static int
+pidfile(const char *basename)
+{
+ struct pidfh *pfh;
+ pid_t otherpid, childpid;
+
+ if (basename != NULL) {
+ errx(EX_USAGE, "Need to impliment NetBSD semantics.");
+ }
+
+ pfh = pidfile_open(basename, 0644, &otherpid);
+ if (pfh == NULL) {
+ if (errno == EEXIST) {
+ errx(EXIT_FAILURE, "Daemon already running, pid: %jd.",
+ (intmax_t)otherpid);
+ }
+ /* If we cannot create pidfile from other reasons, only warn. */
+ warn("Cannot open or create pidfile");
+ return -1;
+ }
+
+ pidfile_write(pfh);
+ pidfile_close(pfh);
+ return 0;
+}
OpenPOWER on IntegriCloud