diff options
author | June McEnroe <june@causal.agency> | 2018-10-20 15:45:58 -0400 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2018-10-20 15:45:58 -0400 |
commit | 1056dca533c84e168e69a5af54fc90ba5d718612 (patch) | |
tree | 0c3d472aae8fa0b71d02ca3d4fc35a3c07831b2c | |
parent | Add server daemonization (diff) | |
download | torus-1056dca533c84e168e69a5af54fc90ba5d718612.tar.gz torus-1056dca533c84e168e69a5af54fc90ba5d718612.zip |
Only use pidfile(3) on FreeBSD daemon
-rw-r--r-- | README | 2 | ||||
-rw-r--r-- | server.c | 9 | ||||
-rw-r--r-- | torus.1 | 2 |
3 files changed, 11 insertions, 2 deletions
diff --git a/README b/README index 743a4e6..67c4dcc 100644 --- a/README +++ b/README @@ -39,7 +39,7 @@ DESCRIPTION -h Write help page data to standard output and exit. -p pidfile - Daemonize and write PID to pidfile. + Daemonize and write PID to pidfile. Only available on FreeBSD. -s sock Set path to UNIX-domain socket. The default path is torus.sock. diff --git a/server.c b/server.c index 7edf3f2..cff6d21 100644 --- a/server.c +++ b/server.c @@ -19,7 +19,6 @@ #include <err.h> #include <errno.h> #include <fcntl.h> -#include <libutil.h> #include <signal.h> #include <stdbool.h> #include <stdint.h> @@ -34,6 +33,10 @@ #include <time.h> #include <unistd.h> +#ifdef __FreeBSD__ +#include <libutil.h> +#endif + #include "torus.h" static struct Tile *tiles; @@ -371,11 +374,13 @@ int main(int argc, char *argv[]) { } } +#ifdef __FreeBSD__ struct pidfh *pid = NULL; if (pidPath) { pid = pidfile_open(pidPath, 0600, NULL); if (!pid) err(EX_CANTCREAT, "%s", pidPath); } +#endif tilesMap(dataPath); @@ -390,11 +395,13 @@ int main(int argc, char *argv[]) { error = bind(server, (struct sockaddr *)&addr, SUN_LEN(&addr)); if (error) err(EX_CANTCREAT, "%s", sockPath); +#ifdef __FreeBSD__ if (pid) { error = daemon(0, 0); if (error) err(EX_OSERR, "daemon"); pidfile_write(pid); } +#endif error = listen(server, 0); if (error) err(EX_OSERR, "listen"); diff --git a/torus.1 b/torus.1 index 6bad6be..cf4f702 100644 --- a/torus.1 +++ b/torus.1 @@ -101,6 +101,8 @@ Write help page data to standard output and exit. .It Fl p Ar pidfile Daemonize and write PID to .Ar pidfile . +Only available on +.Fx . . .It Fl s Ar sock Set path to UNIX-domain socket. |