← Commit list

539e2802e

Denys Vlasenko
Denys Vlasenko
2014-05-11
SUCCESS Duration: 300s

Subject

getty: explain when setsid() fails. no code changes

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

loginutils/getty.c+10 -0
@@ -556,6 +556,16 @@ int getty_main(int argc UNUSED_PARAM, char **argv)
// pid, getppid(),
// getsid(0), getpgid(0));
bb_perror_msg_and_die("setsid");
+ /*
+ * When we can end up here?
+ * Example: setsid() fails when run alone in interactive shell:
+ * # getty 115200 /dev/tty2
+ * because shell's child (getty) is put in a new process group.
+ * But doesn't fail if shell is not interactive
+ * (and therefore doesn't create process groups for pipes),
+ * or if getty is not the first process in the process group:
+ * # true | getty 115200 /dev/tty2
+ */
}
/* Looks like we are already a session leader.
* In this case (setsid failed) we may still have ctty,