|
@@ -160,14 +160,20 @@ do_autorestart() {
|
|
|
perror("sigaction");
|
|
perror("sigaction");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
- /* If we have a logfile, dup it onto stdout and stderr. */
|
|
|
|
|
if (logfile_fd >= 0) {
|
|
if (logfile_fd >= 0) {
|
|
|
|
|
+ /* If we have a logfile, dup it onto stdout and stderr. */
|
|
|
dup2(logfile_fd, STDOUT_FILENO);
|
|
dup2(logfile_fd, STDOUT_FILENO);
|
|
|
dup2(logfile_fd, STDERR_FILENO);
|
|
dup2(logfile_fd, STDERR_FILENO);
|
|
|
close(logfile_fd);
|
|
close(logfile_fd);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ /* Otherwise, close them. */
|
|
|
|
|
+ close(STDOUT_FILENO);
|
|
|
|
|
+ close(STDERR_FILENO);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /* Make sure stdin is closed. */
|
|
|
|
|
+ close(STDIN_FILENO);
|
|
|
|
|
+
|
|
|
now = time(NULL);
|
|
now = time(NULL);
|
|
|
strftime(time_buffer, TIME_BUFFER_SIZE, "%T on %A, %d %b %Y", localtime(&now));
|
|
strftime(time_buffer, TIME_BUFFER_SIZE, "%T on %A, %d %b %Y", localtime(&now));
|
|
|
fprintf(stderr, "autorestart begun at %s.\n", time_buffer);
|
|
fprintf(stderr, "autorestart begun at %s.\n", time_buffer);
|
|
@@ -328,9 +334,6 @@ main(int argc, char *argv[]) {
|
|
|
fprintf(stderr, "Generating output to %s.\n", logfile_name);
|
|
fprintf(stderr, "Generating output to %s.\n", logfile_name);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- /* Make sure standard input is closed. */
|
|
|
|
|
- close(STDIN_FILENO);
|
|
|
|
|
-
|
|
|
|
|
double_fork();
|
|
double_fork();
|
|
|
|
|
|
|
|
return 0;
|
|
return 0;
|