persistent process supervision
rundeux(8)                         runtools                         rundeux(8)

       rundeux - run a program with an associated logger

       rundeux [-hV] [-d] [-L label ] [-S sep ] [-x] program <'::'|'sep'> log-

       program and logger may each be one or more arguments.  They  are  sepa-
       rated  by  the  verbatim  string ``::'', or by the sep argument defined
       with the -S option.

       rundeux starts program and logger with the stdout of program  connected
       to the stdin of logger.  Normally program is intended to be a long-run-
       ning process, and logger is a program that logs the data  it  reads  on
       its  standard  input.   Both program and logger should be set up to run
       under supervision as foreground processes.

       After starting, rundeux continues to monitor both program  and  logger.
       If  either process should terminate, rundeux restarts it.  When rundeux
       itself receives any signal it can catch, it passes  it  on  to  program
       with the kill(2) command.

       If rundeux receives SIGTERM, it flags itself to terminate and initiates
       a shutdown sequence.  It sends SIGTERM and SIGCONT to program and waits
       for  it to terminate.  It then closes the stdin of logger and waits for
       it to terminate.  Then rundeux itself exits normally.

       -d     Detach.  Normally rundeux itself runs as a  foreground  process.
              The  -d  option  may  be  used  to  run  rundeux as a background
              process, in its own session and process group, detached from the
              controlling terminal.

       -h     Help.  Print a brief usage message to stderr and exit.

       -L label
              Label.  May be used to provide label as a distinctive tag for an
              instance of rundeux, such as for reference  in  ps(1)  listings.
              Otherwise, this option has no effect.

       -S sep Separator.   Normally the program and logger arguments are sepa-
              rated by the verbatim string ``::''.  This option may be used to
              specify sep as an alternative separator string.

       -V     Version.  Print the version number to stderr and exit.

       -x     Exit.   Normally  rundeux  itself  stays  resident  as  a system
              process that monitors program and logger.  The -x option  causes
              rundeux  to  start logger, and then replace itself with the pro-
              gram process.  In this case, program  and  logger  will  run  as
              unsupervised processes.  May be combined with the -d option.

       When rundeux receives any catchable signal, it passes that signal on to
       the program under its supervision.

       If rundeux receives SIGTERM, it takes it as a shutdown command and per-
       forms the following sequence:

       o   Send  SIGTERM  and  SIGCONT signals to the program process and wait
           for it to terminate.

       o   Close the stdin of the logger process and wait for it to terminate.

       o   rundeux itself then exits normally.

       Wayne Marshall,

       runtools_intro(8),  runargs(8), runargv0(8), runchoom(8), rundetach(8),
       runenv(8),   runfile(8),    runlimit(8),