fix machinectl shell (in machined) (#7785)

4c253ed broke machined
$machinectl shell arch
Failed to get shell PTY: Input/output error

Closes: #7779

v2: do not drop DEATHSIG flag
This commit is contained in:
Shawn Landden 2018-01-04 03:37:15 -08:00 committed by Lennart Poettering
parent 7ac6c26a22
commit 7ddc2dc5e6

View file

@ -1237,10 +1237,14 @@ int safe_fork_full(
}
if (flags & FORK_DEATHSIG) {
pid_t ppid;
/* Let's see if the parent PID is still the one we started from? If not, then the parent
* already died by the time we set PR_SET_PDEATHSIG, hence let's emulate the effect */
if (getppid() != original_pid) {
ppid = getppid();
if (ppid == 0)
/* Parent is in a differn't PID namespace. */;
else if (ppid != original_pid) {
log_debug("Parent died early, raising SIGTERM.");
(void) raise(SIGTERM);
_exit(EXIT_FAILURE);