NAME [Toc] [Back]
shl - shell layer manager
SYNOPSIS [Toc] [Back]
DESCRIPTION [Toc] [Back]
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 [Toc] [Back]
A name is a sequence of characters delimited by a space, tab, or newline
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 [Toc] [Back]
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
Hewlett-Packard Company - 1 - HP-UX 11i Version 2: August 2003
! [command] Invoke a sub-shell and execute command. If no command
is given, a shell is executed according to the SHELL
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
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 (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(1)-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 [Toc] [Back]
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
Hewlett-Packard Company - 2 - HP-UX 11i Version 2: August 2003
Ptydaemon [Toc] [Back]
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.
FILES [Toc] [Back]
$SHELL Variable containing path name of the shell to use
(default is /usr/bin/sh).
SEE ALSO [Toc] [Back]
sh(1), stty(1), ioctl(2), signal(5).
STANDARDS CONFORMANCE [Toc] [Back]
shl: SVID2, SVID3, XPG2
Hewlett-Packard Company - 3 - HP-UX 11i Version 2: August 2003 [ Back ]