Skip to main content

(Python) Process Manager

Project description


This repository proves pman – a process manager.


Most simply, pman manages processes, i.e. programs or applications that are run by an underlying system. Typically, these processes are command line applications (i.e. have no GUI) and usually do not interact really with a user at all. The primary purpose of pman is to provide other software agents the ability to execute processes via http. In addition, pman keeps a record of the current and historical state of processes that it has executed and is thus able to respond to queries about the processes. Some of the queries that pman can address are

  • state: Is job <XYZ> still running?
  • result: What is the stdout (or stderr) from job <XYZ>?
  • control: Kill job <XYZ>

pman also maintains a persistent human-readable/friendly database-in-the-filesystem of jobs and states of jobs.


Installation is relatively straightforward, and we recommend using either python virtual environments or docker.

Python Virtual Environment

On Ubuntu, install the Python virtual environment creator

sudo apt install virtualenv

Then, create a directory for your virtual environments e.g.:

mkdir ~/python-envs

You might want to add to your .bashrc file these two lines:

export WORKON_HOME=~/python-envs
source /usr/local/bin/

Then you can source your .bashrc and create a new Python3 virtual environment:

source .bashrc
mkvirtualenv --python=python3 python_env

To activate or “enter” the virtual env:

workon python_env

To deactivate virtual env:


Using the fnndsc/pman dock

The easiest option however, is to just use the fnndsc/pman dock.

docker pull fnndsc/pman

and then run

docker run  --name pman         \
            -v /home:/Users     \
            --rm -ti            \
            fnndsc/pman         \
            --rawmode 1 --http  \
            --port 5010         \
            --listeners 12


pman usage

For pman detailed information, see the pman wiki page.


    [--ip <IP>]

    The IP interface on which to listen.

    [--port <port>]
    The port on which to listen. Defaults to '5010'.

    [--protocol <protcol>]
    The protocol to interpret. Defaults to 'tcp'.

    Internal zmq socket server mode. A value of '1' is usually used

    [--listeners <numberOfListenerThreads>]
    The number of internal threads to which requests are dispatched.

    Send return strings as HTTP formatted replies with content-type html.

    If specified, send debugging results to file.

    [--debugToFile <file>]
    In conjunction with --debugToFile, file which will receive debugging info.

    [--listenerSleep <time>]
    A small delay in the listener loop to prevent busy-wait.
    Default is 0.1 seconds.

    [--DBsavePeriod <time>]
    The periodicity in seconds for the internal DB save.

    Provide an overview help page.

    Provide a synopsis help summary.

    Print internal version number and exit.

    [-v|--verbosity <level>]
    Set the verbosity level. "0" typically means no/minimal output. Allows for
    more fine tuned output control as opposed to '--quiet' that effectively
    silences everything.

    --container-env <env>
    The container env within which to run.


Start pman with 12 listeners:

pman                                                        \\
        --ip                                      \\
        --port 5010                                         \\
        --rawmode 1                                         \\
        --http                                              \\
        --listeners 12                                      \\
        --verbosity 1

Project details

Release history Release notifications

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
pman- (37.5 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page