Next: , Up: Subprocess Execution


13.1 Exec

— Command: exec [[fdpat] newcommand [args ... ]]

(none)
Run a unix subprocess (specified by an executable path newcommand and its optional arguments) in the current window. The flow of data between newcommands stdin/stdout/stderr, the process originally started (let us call it "application-process") and screen itself (window) is controlled by the file descriptor pattern fdpat. This pattern is basically a three character sequence representing stdin, stdout and stderr of newcommand. A dot (.) connects the file descriptor to screen. An exclamation mark (!) causes the file descriptor to be connected to the application-process. A colon (:) combines both.
User input will go to newcommand unless newcommand receives the application-process' output (fdpats first character is ‘!’ or ‘:’) or a pipe symbol (‘|’) is added to the end of fdpat.
Invoking exec without arguments shows name and arguments of the currently running subprocess in this window. Only one subprocess can be running per window.
When a subprocess is running the kill command will affect it instead of the windows process. Only one subprocess a time can be running in each window.
Refer to the postscript file doc/fdpat.ps for a confusing illustration of all 21 possible combinations. Each drawing shows the digits 2, 1, 0 representing the three file descriptors of newcommand. The box marked `W' is usual pty that has the application-process on its slave side. The box marked `P' is the secondary pty that now has screen at its master side.