Hi Eric,
On 12/9/21 12:16 PM, Eric Pouech wrote:
Signed-off-by: Eric Pouech eric.pouech@gmail.com
server/console.c | 13 +++++++++++++ server/process.c | 1 + server/process.h | 1 + 3 files changed, 15 insertions(+)
diff --git a/server/console.c b/server/console.c index b4ef1d21874..15652cbe0b9 100644 --- a/server/console.c +++ b/server/console.c @@ -1584,3 +1584,16 @@ DECL_HANDLER(get_next_console_request)
release_object( server );
}
+void console_notify_kill( struct process *process ) +{
- struct console_server* server;
- if (!process->console) return;
- server = process->console->server;
- /* If the terminating process is a process group leader (in Unix world),
* and is attached to a pty, we need to disconnect the server (as the controling
* terminal is no longer accessible).
*/
- if (server && server->term_fd != -1 && getpgid( process->unix_pid ) == process->unix_pid)
disconnect_console_server( server );
This check may not be enough in corner cases. The process can attach to a different process' console in Windows sense, but it will still be a process group leader of a group in Unix sense. Also, I think that only input and tcsetattr may be a problem later, output should still work. Do we need do disconnect entire console?
Thanks,
Jacek