SHL (1)

NAME

shl - shell layer manager

CONTENTS

Synopsis
Description
     Definitions
     Commands
Environment Variables
See Also
Notes

SYNOPSIS

shl

DESCRIPTION

shl provides a method to handle multiple shells in parallel on a single terminal. Each shell is put in its own session and has its own controlling pseudo-terminal. At a time, one shell layer can receive input, but output is multiplexed from all layers. When the SWTCH key (assigned to ^Z at startup if unset) is pressed, shl takes control over the terminal and allows the user to manage layers. The prompt >>> is used by shl when commands may be entered.

    Definitions

Commands and arguments are separated by spaces or tabs and terminated by a new-line. A layer name consists of printable characters other than space, tab, or new-line. Only the first eight characters are significant.

    Commands

The following commands may be entered at the shl prompt; any unique prefix is accepted.
create [-[name] | name [command]]
  Create a new layer that has the specified name. If name is omitted, it is taken from an internal counter and formed as (digit). A name may later be referenced with or without these braces. If name begins with -, a login shell is started, that is, the first argument to the shell begins with -, too. An optional command can be executed instead of the shell. The shell prompt variable PS1 is set to the name of the layer followed by a space character.
name [oldname] newname
  Rename the layer oldname or the current layer to newname.
! [command]
  Execute command or the default shell in a subshell on the same terminal device as shl operates on. Switching between layers is not possible until the command terminates.
block name [name ...]
  Block output of the given layers when they are not current layers.
delete name [name ...]
  Delete the given layers, that is, send a SIGHUP to each process group.
help (or ?)
  Print the syntax of all shl commands.
layers [-l] [name ...]
  For each given layer, or for all layers, print the layer name and its process group. If the -l option is present, a ps(1)-like output format is used.
resume [name]
  Resume the specified layer, or the last current layer.
toggle Resume the previous current layer to that of the current layer.
unblock name [name ...]
  Unblock output of the given layers.
quit Quit shl and send a SIGHUP signal to all remaining layers.
name Resume the specified layer. Any unique name prefix is accepted.

ENVIRONMENT VARIABLES

SHELL Default shell program.
SYSV3 Causes the text of some messages to be changed.

SEE ALSO

ps(1), sh(1), stty(1), termio(7I)

NOTES

This shl implementation uses regular pseudo terminals and thus works slightly different than the original System V one.

The block command will not suspend a layer from execution immediately. The layer will continue to run until the pseudo terminal's buffer is filled. This can lead to lots of output once the layer is resumed or unblocked.

The loblk setting of stty(1) is not honored.

While pseudo-terminal settings are an attribute of a specific layer, terminal states set by escape sequences are not and can cause unpredictable results when layers are switched. It might be better to stop or quit screen-handling programs on some output devices.


Heirloom Toolchest SHL (1) 10/8/03
Generated by a modified version of manServer 1.07 from shl.1 using man macros.