|
@@ -407,43 +407,41 @@ static void start_children(FFServerStream *feed)
|
|
|
if (!feed->child_argv || feed->pid)
|
|
|
continue;
|
|
|
|
|
|
- feed->pid_start = time(0);
|
|
|
+ feed->pid_start = time(0);
|
|
|
|
|
|
- feed->pid = fork();
|
|
|
-
|
|
|
- if (feed->pid < 0) {
|
|
|
- http_log("Unable to create children\n");
|
|
|
- exit(1);
|
|
|
- }
|
|
|
-
|
|
|
- if (feed->pid)
|
|
|
- continue;
|
|
|
+ feed->pid = fork();
|
|
|
+ if (feed->pid < 0) {
|
|
|
+ http_log("Unable to create children\n");
|
|
|
+ exit(1);
|
|
|
+ }
|
|
|
|
|
|
- /* In child */
|
|
|
+ if (feed->pid)
|
|
|
+ continue;
|
|
|
|
|
|
- http_log("Launch command line: ");
|
|
|
- http_log("%s ", pathname);
|
|
|
- for (i = 1; feed->child_argv[i] && feed->child_argv[i][0]; i++)
|
|
|
- http_log("%s ", feed->child_argv[i]);
|
|
|
- http_log("\n");
|
|
|
+ /* In child */
|
|
|
|
|
|
- for (i = 3; i < 256; i++)
|
|
|
- close(i);
|
|
|
+ http_log("Launch command line: ");
|
|
|
+ http_log("%s ", pathname);
|
|
|
|
|
|
- if (!config.debug) {
|
|
|
- if (!freopen("/dev/null", "r", stdin))
|
|
|
- http_log("failed to redirect STDIN to /dev/null\n;");
|
|
|
- if (!freopen("/dev/null", "w", stdout))
|
|
|
- http_log("failed to redirect STDOUT to /dev/null\n;");
|
|
|
- if (!freopen("/dev/null", "w", stderr))
|
|
|
- http_log("failed to redirect STDERR to /dev/null\n;");
|
|
|
- }
|
|
|
+ for (i = 1; feed->child_argv[i] && feed->child_argv[i][0]; i++)
|
|
|
+ http_log("%s ", feed->child_argv[i]);
|
|
|
+ http_log("\n");
|
|
|
|
|
|
- signal(SIGPIPE, SIG_DFL);
|
|
|
+ for (i = 3; i < 256; i++)
|
|
|
+ close(i);
|
|
|
|
|
|
- execvp(pathname, feed->child_argv);
|
|
|
+ if (!config.debug) {
|
|
|
+ if (!freopen("/dev/null", "r", stdin))
|
|
|
+ http_log("failed to redirect STDIN to /dev/null\n;");
|
|
|
+ if (!freopen("/dev/null", "w", stdout))
|
|
|
+ http_log("failed to redirect STDOUT to /dev/null\n;");
|
|
|
+ if (!freopen("/dev/null", "w", stderr))
|
|
|
+ http_log("failed to redirect STDERR to /dev/null\n;");
|
|
|
+ }
|
|
|
|
|
|
- _exit(1);
|
|
|
+ signal(SIGPIPE, SIG_DFL);
|
|
|
+ execvp(pathname, feed->child_argv);
|
|
|
+ _exit(1);
|
|
|
}
|
|
|
}
|
|
|
|