diff --git a/src/main.c b/src/main.c index 17683a41..370bb2ae 100644 --- a/src/main.c +++ b/src/main.c @@ -157,6 +157,8 @@ usage(const char *argv0) printf(" -c Alternate configuration path.\n" " Defaults to [$HOME/.hts/tvheadend]\n"); printf(" -f Fork and daemonize\n"); + printf(" -p Write pid to instead of /var/run/tvheadend.pid,\n" + " only works with -f\n"); printf(" -u Run as user , only works with -f\n"); printf(" -g Run as group , only works with -f\n"); printf(" -C If no useraccount exist then create one with\n" @@ -228,6 +230,7 @@ main(int argc, char **argv) int c; int forkaway = 0; FILE *pidfile; + const char *pidpath = "/var/run/tvheadend.pid"; struct group *grp; struct passwd *pw; const char *usernam = NULL; @@ -246,7 +249,7 @@ main(int argc, char **argv) // make sure the timezone is set tzset(); - while((c = getopt(argc, argv, "Aa:fu:g:c:Chdr:j:s")) != -1) { + while((c = getopt(argc, argv, "Aa:fp:u:g:c:Chdr:j:s")) != -1) { switch(c) { case 'a': adapter_mask = 0x0; @@ -274,6 +277,9 @@ main(int argc, char **argv) case 'f': forkaway = 1; break; + case 'p': + pidpath = optarg; + break; case 'u': usernam = optarg; break; @@ -314,8 +320,7 @@ main(int argc, char **argv) if(daemon(0, 0)) { exit(2); } - - pidfile = fopen("/var/run/tvheadend.pid", "w+"); + pidfile = fopen(pidpath, "w+"); if(pidfile != NULL) { fprintf(pidfile, "%d\n", getpid()); fclose(pidfile);