conf, passt: Don't try to log to stderr after we close it
If we don't run in foreground, we close standard error as we daemonise, so it makes no sense to check if the controlling terminal is an interactive terminal or if --force-stderr was given, to decide if we want to log to standard error. Make --force-stderr depend on --foreground. Signed-off-by: Stefano Brivio <sbrivio@redhat.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
65923ba798
commit
b74801645c
2 changed files with 4 additions and 1 deletions
3
conf.c
3
conf.c
|
@ -1631,6 +1631,9 @@ void conf(struct ctx *c, int argc, char **argv)
|
||||||
|
|
||||||
conf_ugid(runas, &uid, &gid);
|
conf_ugid(runas, &uid, &gid);
|
||||||
|
|
||||||
|
if (!c->foreground && c->force_stderr)
|
||||||
|
die("Can't log to standard error if not running in foreground");
|
||||||
|
|
||||||
if (logfile) {
|
if (logfile) {
|
||||||
logfile_init(c->mode == MODE_PASTA ? "pasta" : "passt",
|
logfile_init(c->mode == MODE_PASTA ? "pasta" : "passt",
|
||||||
logfile, logsize);
|
logfile, logsize);
|
||||||
|
|
2
passt.c
2
passt.c
|
@ -302,7 +302,7 @@ int main(int argc, char **argv)
|
||||||
if (isolate_prefork(&c))
|
if (isolate_prefork(&c))
|
||||||
die("Failed to sandbox process, exiting");
|
die("Failed to sandbox process, exiting");
|
||||||
|
|
||||||
if (!c.force_stderr && !isatty(fileno(stderr)))
|
if (!c.foreground || (!c.force_stderr && !isatty(fileno(stderr))))
|
||||||
__openlog(log_name, 0, LOG_DAEMON);
|
__openlog(log_name, 0, LOG_DAEMON);
|
||||||
|
|
||||||
if (!c.foreground)
|
if (!c.foreground)
|
||||||
|
|
Loading…
Reference in a new issue