X-Git-Url: http://andersk.mit.edu/gitweb/moira.git/blobdiff_plain/f971da97f6b8aa9555c391f9284d42fc856415c9..bee2d3fbd1e6af62c5d24611d4ada6e25a970315:/server/startmoira.c diff --git a/server/startmoira.c b/server/startmoira.c index 93561868..4bb8925c 100644 --- a/server/startmoira.c +++ b/server/startmoira.c @@ -27,6 +27,7 @@ static char *rcsid_mr_starter_c = "$Header$"; #include #define PROG "moirad" +char *whoami int rdpipe[2]; extern char *sys_siglist[]; @@ -42,15 +43,17 @@ cleanup() while (wait3(&stat, WNOHANG, 0) > 0) { if (WIFEXITED(stat)) { - if (stat.w_retcode) + if (stat.w_retcode) { sprintf(buf, - "exited with code %d\n", + "moirad exited with code %d\n", stat.w_retcode); + send_zgram("startmoira", buf); } if (WIFSIGNALED(stat)) { - sprintf(buf, "exited on %s signal%s\n", + sprintf(buf, "moirad exited on %s signal%s\n", sys_siglist[stat.w_termsig], (stat.w_coredump?"; Core dumped":0)); + if(stat.w_coredump) send_zgram("startmoira", buf); } write(rdpipe[1], buf, strlen(buf)); close(rdpipe[1]); @@ -59,6 +62,8 @@ cleanup() } main(argc, argv) + int argc; + char **argv; { char buf[BUFSIZ]; FILE *log, *prog; @@ -69,6 +74,8 @@ main(argc, argv) int nfds = getdtablesize(); + whoami = argv[0]; + setreuid(0); signal(SIGCHLD, cleanup);