X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/tripe/blobdiff_plain/0ed0735f38c78e11cdf1c2b095ba754a92d2d201..19dd2531cafe84927c845e548ec68587007f3ab2:/client/tripectl.c diff --git a/client/tripectl.c b/client/tripectl.c index ea8aadff..b27d3fdc 100644 --- a/client/tripectl.c +++ b/client/tripectl.c @@ -51,6 +51,7 @@ #include #include +#include #include #include #include @@ -60,6 +61,7 @@ #include #include #include +#include #include "util.h" @@ -163,6 +165,7 @@ static void cline(char *p, size_t len, void *b) } else if (strcmp(q, "INFO") == 0) { checkfg(); puts(p); + fflush(stdout); } else if (strcmp(q, "OK") == 0) { checkfg(); exit(0); @@ -176,6 +179,7 @@ static void cline(char *p, size_t len, void *b) } else if (strcmp(q, "BGINFO") == 0) { checkbg(&p); puts(p); + fflush(stdout); } else if (strcmp(q, "BGFAIL") == 0) { checkbg(&p); die(EXIT_FAILURE, "%s", p); @@ -191,6 +195,7 @@ static void sline(char *p, size_t len, void *b) exit(0); } puts(p); + fflush(stdout); } static void uline(char *p, size_t len, void *b) @@ -340,6 +345,8 @@ int main(int argc, char *argv[]) if ((p = getenv("TRIPEDIR")) != 0) dir = p; + if ((p = getenv("TRIPESOCK")) != 0) + sock = p; /* --- Parse the arguments --- */ @@ -476,7 +483,7 @@ int main(int argc, char *argv[]) fclose(pidfp); closelog(); if (f & f_daemon) - u_detach(); + detachtty(); execvp(DA(&spawnopts)[0], DA(&spawnopts)); die(127, "couldn't exec `%s': %s", spawnpath, strerror(errno)); } @@ -501,7 +508,7 @@ int main(int argc, char *argv[]) } if (f & f_daemon) { - if (u_daemon()) + if (daemonize()) die(EXIT_FAILURE, "error becoming daemon: %s", strerror(errno)); } if (pidfp) {