7 .Nd terminal session manager
19 .Cm command Op args ...
25 .Cm command Op args ...
31 .Cm command Op args ...
36 disassociates a given application from its controlling
37 terminal, thereby providing roughly the same session attach/detach support as
43 A session comprises of an
45 server process which spawns a user
46 command in its own pseudo terminal
48 Each session is given a name represented by a unix domain socket
50 stored in the local file system.
52 clients can connect to it and their standard input output streams
53 are relayed to the command supervised by the server.
56 operates on the raw I/O byte stream without interpreting any terminal
57 escape sequences. As a consequence the terminal state is not preserved
58 across sessions. If this functionality is desired, it should be provided
59 by another utility such as
64 If no command line arguments are given, all currently active sessions are
65 listed sorted by their respective creation date. Lines starting with an
68 indicate that at least one client is currently connected.
71 signals that the command terminated while no client was connected.
72 Attaching to the session will print its exit status.
73 The next column shows the PID of the server process, followed by the session
77 provides different actions of which one must be provided.
79 .Bl -tag -width indent
81 Attach to an existing session.
83 Try to connect to an existing session, upon failure create said session and attach immediately to it.
85 Create a new session and attach immediately to it.
87 Create a new session but do not attach to it.
92 Additionally the following options can be provided to further tweak
94 .Bl -tag -width indent
96 Set the key to detach. Defaults to
98 which is specified as ^\\ i.e. Ctrl is represented as a caret
101 Force creation of session when there is an already terminated session of the same name,
102 after showing its exit status.
104 Attach with the lowest priority, meaning this client will be the last to control the size.
106 Pass through content of standard input to the session. Implies the
112 Be quiet, do not print informative messages.
114 Read-only session, user input is ignored.
116 Print version information and exit.
121 .Bl -tag -width indent
123 Whenever the primary client resizes its terminal the server process will deliver a
125 signal to the supervised process.
127 If for some reason the unix domain socket representing a session is deleted, sending
129 to the server process will recreate it.
136 .Bl -tag -width indent
140 is not specified, the environment variable
142 is examined, if it is not set
145 .It Ev ABDUCO_SESSION
146 The current session name available to the supervised command.
148 The absolute path of the session socket available to the supervised command.
153 section for environment variables used in determining the location
154 of unix domain sockets representing sessions.
157 All session related information is stored in the following directories (first
161 .Ev $ABDUCO_SOCKET_DIR/abduco
165 .Ev $TMPDIR/abduco/$USER
167 .Ev /tmp/abduco/$USER
171 However, if a given session
173 represents either a relative or absolute path it is used unmodified.
178 Start a new session (assuming
184 .Dl $ abduco -c my-session
186 do some work, then detach by pressing
188 list existing session by running
190 without any arguments and later reattach with
192 .Dl $ abduco -a my-session
194 Alternatively, we can also explicitly specify the command to run.
196 .Dl $ abduco -c my-session /bin/sh
202 .Dl $ abduco -e ^z -a my-session
204 Send a command to an existing session.
206 .Dl $ echo make | abduco -a my-session
208 Or in a slightly more interactive fashion.
210 .Dl $ abduco -p my-session
223 .An Marc André Tanner Aq mat at brain-dump.org