Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ shl(C) — OpenDesktop 3.0.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ioctl(S)

mkdev(ADM)

sh(C)

signal(S)

stty(C)

sxt(M)


 shl(C)                          19 June 1992                          shl(C)


 Name

    shl - shell layer manager

 Syntax

    shl

 Description

    The shl command allows a user to interact with more than one shell from a
    single terminal.  The user controls these shells, known as layers, using
    the commands described below.

    The current layer is the layer that can receive input from the keyboard.
    Other layers attempting to read from the keyboard are blocked.  Output
    from multiple layers is multiplexed onto the terminal.  To have the out-
    put of a layer blocked when it is not current, the stty(C) option loblk
    may be set within the layer.

    The stty character swtch (set to <Ctrl>z if NUL) is used to switch con-
    trol to shl from a layer.  shl has its own prompt, ``>>>'', to help dis-
    tinguish it from a layer.

    A layer is a shell that has been bound to a virtual tty device
    (/dev/sxt??[0-7] or /dev/sxt/??[0-7]).  The virtual device can be manipu-
    lated like a real tty device using stty(C) and ioctl(S).  Each layer has
    its own process group id.

 Definitions

    A name is a sequence of characters delimited by a blank, tab or newline.
    Only the first eight characters are significant.  The names (1) through
    (7) cannot be used when creating a layer.  They are used by shl when no
    name is supplied.  They may be abbreviated to just the digit.

 Commands

    The following commands may be issued from the shl prompt level.  Any
    unique prefix is accepted.

    create [ name ]
            Create a layer called name and make it the current layer.  If no
            argument is given, a layer will be created with a name of the
            form ``(#)'' where ``#'' is the last digit of the virtual device
            bound to the layer.  The shell prompt variable PS1 is set to the
            name of the layer followed by a space, or, if super user, the
            name followed by a sharp (#) and a space.  A maximum of seven
            layers can be created.

    block name [ name ... ]
            For each name, block the output of the corresponding layer when
            it is not the current layer.  This is equivalent to setting the
            stty option loblk within the layer.

    delete name [ name ... ]
            For each name, delete the corresponding layer.  All processes in
            the process group of the layer are sent the SIGHUP signal (see
            signal(S)).

    help (or ?)
            Print the syntax of the shl commands.

    layers [ -l ] [ name ... ]
            For each name, list the layer name and its process group.  The -l
            option produces a ps(C)-like listing.  If no arguments are given,
            information is presented for all existing layers.

    resume [ name ]
            Make the layer referenced by name the current layer.  If no argu-
            ment is given, the last existing current layer will be resumed.

    toggle  Resume the layer that was current before the last current layer.

    unblock name  [ name ... ]
            For each name, do not block the output of the corresponding layer
            when it is not the current layer.  This is equivalent to setting
            the stty option loblk within the layer.

    quit    Exit shl.  All layers are sent the SIGHUP signal.

    name    Make the layer referenced by name the current layer.

 Files

    /dev/sxt??[0-7] or
    /dev/sxt/??[0-7]         Virtual tty devices
    $SHELL                   Variable containing pathname of the shell to use
                             (default is /bin/sh).

 See also

    ioctl(S), mkdev(ADM), sh(C), signal(S), stty(C), sxt(M)

 Note

    It is inadvisable to kill shl.

    shl normally accesses sxt??? devices correctly at all times. Other pro-
    grams may be able to work with these devices if they have the correct
    protocol and device name; however some programs may not expect devices to
    be located outside /dev, and some programs may expect all terminal de-
    vices to begin with the prefix tty.

    If shl does not run properly on a particular terminal, you may have to
    set istrip for that terminal's line by entering the following command at
    the terminal:

       stty istrip

    By default, the Operating System is not configured for shell layers.  To
    add this to kernel, use the command:

       mkdev shl

    This executes a script which prompts you for the number of sessions
    desired.  The script also allows you to relink the kernel.  The new ses-
    sion limit becomes effective after the kernel is rebooted.  (For more in-
    formation, see mkdev(ADM).)

 Standards conformance

    shl is conformant with:

    AT&T SVID Issue 2.


Typewritten Software • bear@typewritten.org • Edmonds, WA 98026