From 1056dca533c84e168e69a5af54fc90ba5d718612 Mon Sep 17 00:00:00 2001 From: June McEnroe Date: Sat, 20 Oct 2018 15:45:58 -0400 Subject: Only use pidfile(3) on FreeBSD --- README | 2 +- server.c | 9 ++++++++- 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 #include #include -#include #include #include #include @@ -34,6 +33,10 @@ #include #include +#ifdef __FreeBSD__ +#include +#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. -- cgit 1.4.1