NAME
shl — shell layer manager
DESCRIPTION
shl
provides a means for interacting with more than one shell
from a single terminal by using shell layers.
A layer is a shell that is bound to a virtual device.
The virtual device can be manipulated like an actual terminal by using
stty
and
ioctl()
(see
stty(1)
and
ioctl(2)).
Each layer has its own process group ID.
The user controls these layers by 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 block the output of a layer when it is not current, the
stty
option
loblk
can be set within the layer.
The
stty
character
swtch
(set to
^Z
if NUL) is used to switch control to
shl
from a layer.
shl
has its own prompt,
>>>,
to distinguish it from a layer.
Definitions
A
name
is a sequence of characters delimited
by a space, tab, or new-line character.
Only the first eight characters are significant.
When provided as an argument to the
create
or
name
commands,
name
cannot be of the form
n
or
(n),
where
n
is a decimal number.
Commands
The following commands can be issued from the
shl
prompt level.
Any unique prefix is accepted.
- create [-[name] | name [command]]
Create a layer called
name
and make it the current layer.
If no argument is given, a layer is created with a name of the form
(n),
where
n
is the number of the next available slot in an internal table.
Future references to this layer
can be made with or without the parentheses.
If
name
is followed by a command,
that command is executed in the layer instead of a shell.
If
-
is the first argument, a "login shell" is created in the layer.
The shell prompt variable
PS1
is set to the name of the layer followed by a space.
- name [oldname] newname
Rename the layer
oldname,
calling it
newname.
If
oldname
is not specified, the current layer name is changed.
- ! [command]
Invoke a sub-shell and execute
command.
If no
command
is given, a shell is executed according to the
SHELL
environment variable.
- 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
sttyloblk
option 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(5)).
- help | ?
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-like
listing.
If no arguments are given,
information is presented for all existing layers.
- resume [name]
Change the status of the layer referred to by
name
to that of current layer.
If no argument is given, the last existing current layer
is changed.
- toggle
Change the status of the previous current layer
to that of 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-loblk
option within the layer.
- quit
Exit
shl.
All layers are sent the
SIGHUP
signal.
- name
Change the status of the layer referred to by
name
to that of current layer.
Any unique prefix is accepted.
WARNINGS
Commands
The behavior of the
block
and
unblock
shl
commands is not guaranteed when the SHELL
environment variable is set to
/usr/bin/csh
(for
csh(1))
or
/usr/bin/ksh
(for
ksh(1)),
or when the shell saves and restores the tty state (defined in
termio(7))
before and after each command is invoked interactively from that shell.
For both
/usr/bin/csh
and
/usr/bin/ksh,
the
loblk
or
-loblk
options of
stty
can be used from within the layer to block
or unblock the output of that layer.
Ptydaemon
For
shl
to function properly, the
ptydaemon
process must be running on the system.
If your system has been installed with the Desktop HP-UX product, then
ptydaemon
will not be started by default.
In order to start this daemon, change
PTYDAEMON_START
from a "0" to a "1" in the
/etc/rc.config.d/ptydaemon
file.
The system must either be rebooted for this change to
take effect, or you can manually start this daemon by typing :
Note that
ptydaemon
will also be disabled if the
DesktopConfig.LITECONFIG
fileset has been installed on the system, or if the system administrator has
previously run the
SAM
utility and selected the
Apply Lite HP-UX Configuration Action
from within any of
SAM's
Kernel Configuration
screens.
shl
does not support long user and group names on the current release,
HP-UX 11i V3.
FILES
- $SHELL
Variable containing path name of the shell to use (default is
/usr/bin/sh).
STANDARDS CONFORMANCE
shl: SVID2, SVID3, XPG2