#include <moira_site.h>
#define PROG "moirad"
+char *whoami
int rdpipe[2];
extern char *sys_siglist[];
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]);
}
main(argc, argv)
+ int argc;
+ char **argv;
{
char buf[BUFSIZ];
FILE *log, *prog;
int nfds = getdtablesize();
+ whoami = argv[0];
+
setreuid(0);
signal(SIGCHLD, cleanup);