mirror of
https://github.com/fergalmoran/ladybird.git
synced 2025-12-27 03:37:53 +00:00
Shell: Move the first command in a pipeline to the pipeline pgid too
This process is supposed to be the session leader of the pipeline process group, we can't *not* move it into that group :P
This commit is contained in:
committed by
Andreas Kling
parent
d366e996dd
commit
063fb02ef4
@@ -622,12 +622,14 @@ RefPtr<Job> Shell::run_command(const AST::Command& command)
|
||||
}
|
||||
|
||||
pid_t pgid = is_first ? child : (command.pipeline ? command.pipeline->pgid : child);
|
||||
if (!m_is_subshell && command.should_wait) {
|
||||
if ((!m_is_subshell && command.should_wait) || command.pipeline) {
|
||||
if (setpgid(child, pgid) < 0)
|
||||
perror("setpgid");
|
||||
|
||||
tcsetpgrp(STDOUT_FILENO, pgid);
|
||||
tcsetpgrp(STDIN_FILENO, pgid);
|
||||
if (!m_is_subshell) {
|
||||
tcsetpgrp(STDOUT_FILENO, pgid);
|
||||
tcsetpgrp(STDIN_FILENO, pgid);
|
||||
}
|
||||
}
|
||||
|
||||
while (write(sync_pipe[1], "x", 1) < 0) {
|
||||
|
||||
Reference in New Issue
Block a user