`pclient` is the remote process monitor for pcontrol, the parallel process controller.

### Overview

The program `pclient` is used to support the remote jobs which are run on the remote hosts by `pcontrol`. The concept of pclient is to act as a buffer between the job running on the remote host and pcontrol. The pcontrol design uses (by default) ssh connections initiated by pcontrol to the remote hosts. These connections execute the remote program of pclient. The use of a remote login process lets the UNIX system take care of the user authentication issues. In this case, the recommended practice is to set up ssh to allow the connection to the remote host without additional authentication using the appropriate authorized keys (see this article on ssh issues).

It is convenient to keep a continuous connection to the remote hosts. This avoids incurring the overhead of authentication for each command which is executed, while keeping a high-quality user authentication process in place.

pclient acts as a buffer between pcontrol and the remote background process, allowing the continuous connection to remain viable without samping pcontrol with output from the jobs.

### Command Summary

pclient has a very limited command set, as follows:

    job           : start the job (UNIX command) in the background.
    check         : return the current job status
    status        : return the current job status (?)
    stdout        : dump the stdout stream accumulated from the job
                    back to the calling program.
    stderr        : dump the stderr stream accumulated from the job
                    back to the calling program.
    reset         : kill (if needed) the job and reset to accept
                    another job.