else {
what_exited = "unknown";
}
- fprintf(stderr, "ctdlvisor: pid=%d (%s) exited, status=%d, exitcode=%d\n", who_exited, what_exited, status, WEXITSTATUS(status));
+ if (who_exited >= 0) {
+ if (WIFEXITED(status)) {
+ fprintf(stderr, "ctdlvisor: %d (%s) exited, exitcode=%d\n", who_exited, what_exited, WEXITSTATUS(status));
+ }
+ else if (WIFSIGNALED(status)) {
+ fprintf(stderr, "ctdlvisor: %d (%s) crashed, signal=%d\n", who_exited, what_exited, WTERMSIG(status));
+ }
+ else {
+ fprintf(stderr, "ctdlvisor: %d (%s) ended, status=%d\n", who_exited, what_exited, status);
+ }
+ }
} while (who_exited >= 0);
-
ctdlvisor_exit(0);
}
sprintf(bin, "%s/usr/local/citadel/citserver", getenv("APPDIR"));
pid_t pid = fork();
if (pid == 0) {
- fprintf(stderr, "ctdlvisor: executing %s\n", bin);
+ fprintf(stderr, "ctdlvisor: executing %s with data directory %s\n", bin, getenv("CTDL_DIR"));
detach_from_tty();
execlp(bin, "citserver", "-x9", "-h", getenv("CTDL_DIR"), NULL);
exit(errno);
}
else {
+ fprintf(stderr, "ctdlvisor: citserver running on pid=%d\n", pid);
return(pid);
}
}
exit(errno);
}
else {
+ fprintf(stderr, "ctdlvisor: webcit (HTTP) running on pid=%d\n", pid);
return(pid);
}
}
exit(errno);
}
else {
+ fprintf(stderr, "ctdlvisor: webcit (HTTPS) running on pid=%d\n", pid);
return(pid);
}
}
int citserver_exit_code = 0;
do {
- fprintf(stderr, "ctdlvisor: waiting for any child process to exit...\n");
who_exited = waitpid(-1, &status, 0);
fprintf(stderr, "ctdlvisor: pid=%d exited, status=%d, exitcode=%d\n", who_exited, status, WEXITSTATUS(status));