10.0;siomonit (sio_process_monitor), revision 1.0, 88/02/02
SIOMONIT (SIO_PROCESS_MONITOR) -- Support repeated logins on an sio line.
usage: siomonit pathname
FORMAT
siomonit pathname
siomonit supports repeated logins on sio lines, independent of any
login/logout activity at the node terminal. siomonit must be invoked as a
server (cps) and siologin must be a manager within the login protected
subsystem for the login procedure to be successful (See help siologin).
ARGUMENTS
pathname
(required) Specify the file containing argument lists to be passed to
invocations of siologin. A maximum of three argument lists
(one per sio line) are processed. See the "ARGUMENT LIST
FORMAT" section below for details about the argument lists.
ARGUMENT LIST FORMAT
The argument list file contains a sequence of argument lists, one per line.
Each argument list in the file must have the form:
[-Repeat] siologin_arg_list
where
-Repeat means re-invoke this process each time it returns.
siologin_arg_list
is an siologin argument list of the form:
/dev/siox [[-dialin] [-n processname] prog [ args ...]]
For each argument list, siomonit invokes:
/sys/siologin/siologin siologin_arg_list
Comments may be included in the siomonit file and must begin with #.
Arguments are passed to siologin unvalidated except that the first one must be
/dev/siox, specifying the sio line to use. If the invocation fails, or if a
process returns from its invocation within 15 seconds, siomonit will wait 15
minutes before attempting to start the process again. siomonit re-reads the
argument file each time a child process dies. An asynchronous quit fault will
cause siomonit to re-read the argument file and try to restart processes for
unused lines. A stop fault causes siomonit to exit. (Processes that do not
have the -repeat argument are given only one successful start per reading of
the input file.) The sigp command may be used to send stop and quit signals
to siomonit.
A frequent cause of failure of an siologin process to stay alive is a locked
sio line (/dev/siox). For example, if a user does not send a CTRL/Z to quit
from an sio process on a locally connected terminal, that sio line remains
locked, and unusable. To free up the line, use sigp -q to prod siomonit into
trying again.
If siomonit terminates and its child processes do not also terminate, the
child processes are, in effect, orphans. The existence of the orphans will
interfere with siomonit's attempts to start new child processes. siomonit
will not be notified when the orphan processes terminate. Instead, if
siomonit detects the orphan's existence, it rechecks every 15 minutes to see
if the orphans have died. If the orphan processes have ended, siomonit
restarts the siologin processes as directed in its argument list. siomonit
itself never kills a child process, its own process, or an orphan.
Should this scenario occur, a user may have to wait 15 minutes before being
able to complete the siologin process.