Skip to content

launch-client, launcher-service: Use a pseudo-terminal to enable interactive TUI debugging

Simon McVittie requested to merge wip/smcv/task125 into master
  • launcher-service: Try to set the controlling terminal

    If stdin, stdout or stderr is a terminal, we want to set it as our controlling terminal to get things like job control.

  • utils: Move functions for a hash table keyed by struct stat to here

    A subsequent commit will need these.

  • pty-bridge: Add a bridge between fds and a pseudo-terminal

    This can be fd-passed across a container boundary to stop programs in the container from tampering with the real terminal outside the container, while providing proper job control for programs inside the container.

  • launch-client: Use a pseudo-terminal to replace references to terminals

    This allows the program on the service side to take the pseudo-terminal as its controlling terminal, giving it proper job control.

    steamrt/tasks#125


Still to do:

  • test SIGWINCH handling
  • test TIOCSTI blocking
Edited by Simon McVittie

Merge request reports