Killing attacher leaves terminal broken until detach
Johannes Altmanninger <[email protected]> Fri, 13 Sep 2024 12:59:48 +0200
| Newsgroups | gmane.comp.gnu.screen.user |
|---|---|
| Message-ID | <[email protected]> |
We've been investigating an issue [1] where, given a single attached
screen session, "pkill -TERM screen" leaves the terminal in a broken
state on macOS.
Turns out that on macOS, pgrep/pkill match against argv[0], so the
above command kills only the attacher process, not the forked server
where argv[0]="SCREEN".
Then we are in a broken state because two different processes are
trying to read from the terminal.
I don't really know what the behavior should be but I guess it would
be nice if there was a way to automatically detect/fix this case.
We could automatically detach on SIGTERM as we do on SIGHUP (probably
not worth the trouble though)
Or perhaps there is a way to detect that two shells are racing to
read from the terminal?
[1]: https://github.com/fish-shell/fish-shell/issues/10717
Originally reported about "pkill -KILL" but whether we can/want
to also fix that is another story.