summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/fs.md9
1 files changed, 6 insertions, 3 deletions
diff --git a/docs/fs.md b/docs/fs.md
index 544a9f84..4e3428d1 100644
--- a/docs/fs.md
+++ b/docs/fs.md
@@ -956,9 +956,12 @@ INT|TERM|HUP|QUIT|KILL` and `exec`, which starts the pane's shell again in
its directory: one that is gone is refused before anything runs, `exec:
<dir>: no such directory` (ENOENT), and a shell the host cannot start (not
there, not executable, a script whose interpreter is not there) fails the
-write with why -- `shell: shell not found`, ENOENT -- keeping the
-terminal; a `Tty` whose shell cannot start fails the same way and leaves
-no pane. The host knows before it answers: the child reports a failed exec
+write with why -- `shell: shell not found`, or `shell: interpreter
+/no/such/interp not found` for a script whose `#!` names a program that is
+not there, ENOENT -- keeping the terminal; a `Tty` naming such a shell or
+script is refused before anything runs (`Tty: interpreter ... not found`,
+its `err` the only record), and one whose shell cannot start fails the
+same way and leaves no pane. The host knows before it answers: the child reports a failed exec
through a close-on-exec pipe. A directory removed
under a running shell leaves the pane its name (never `... (deleted)`), so
an `exec` works there once the directory is back. The size, and `pty/ctl`'s `winsize` read back, is