From da726a4d4dc324b35c703fd2dc5f60b460ce8091 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 30 Aug 2010 23:31:27 +0200 Subject: [PATCH] exec: make sure O_NONBLOCK is off for all sockets passed as STDIN/STDOUT/STDERR --- fixme | 24 ++++++++++++++---------- src/execute.c | 5 +++++ 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/fixme b/fixme index e5d17a06..1ac8ba28 100644 --- a/fixme +++ b/fixme @@ -1,8 +1,6 @@ * oneshot services which do not remain: 'exited' instead of 'dead'? it should be visible in 'systemctl' that they have been run -* systemd.log_level=debug should overwrite 'quiet' ? - * dot output for --test showing the 'initial transaction' * have a simple syslog bridge providing /dev/log and forward messages @@ -64,29 +62,35 @@ * ConditionFileExists=, ConditionKernelCommandLine=, ConditionEnvironment= mit ! -* oom_score_adj - * accountsservice is dod -* follow LSB exit codes spec in "systemctl start" - * auditd service files * add systemctl switch to dump transaction without executing it -* shell wenn fsck im arsch is - * system.conf/session.conf brauch ne man page * exec /sbin/poweroff als PID 1 und shutdown +* kexec, suspend, resume + +v9: + * MTA IS KAPUTT -* kill-mode=cgroup muss auch die mainpid killen! +* kill-mode=cgroup muss auch die mainpid killen! https://bugzilla.redhat.com/show_bug.cgi?id=626477 * o_ndelay ausschalten für stdin/stderr/stdout auf socket -* kexec, suspend, resume +* follow LSB exit codes spec in "systemctl start" + +* oom_score_adj + +* fix isolate as runlevel https://bugzilla.redhat.com/show_bug.cgi?id=627014 + +* rename failed/maintenance https://bugzilla.redhat.com/show_bug.cgi?id=614619 + +* systemctl wrapping https://bugzilla.redhat.com/show_bug.cgi?id=626891 https://bugzilla.redhat.com/show_bug.cgi?id=626443 External: diff --git a/src/execute.c b/src/execute.c index f35e916e..2443d9c7 100644 --- a/src/execute.c +++ b/src/execute.c @@ -1038,6 +1038,11 @@ int exec_spawn(ExecCommand *command, goto fail; } + /* If a socket is connected to STDIN/STDOUT/STDERR, we + * must sure to drop O_NONBLOCK */ + if (socket_fd >= 0) + fd_nonblock(socket_fd, false); + if (!keep_stdin) if (setup_input(context, socket_fd, apply_tty_stdin) < 0) { r = EXIT_STDIN; -- 2.39.5