{ "info": { "author": "Rudolph Pienaar", "author_email": "rudolph.pienaar@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "#################\npman - v2.0.0.10\n#################\n\n.. image:: https://badge.fury.io/py/pman.svg\n :target: https://badge.fury.io/py/pman\n\n.. image:: https://travis-ci.org/FNNDSC/pman.svg?branch=master\n :target: https://travis-ci.org/FNNDSC/pman\n\n.. image:: https://img.shields.io/badge/python-3.5%2B-blue.svg\n :target: https://badge.fury.io/py/pman\n\n.. contents:: Table of Contents\n\n********\nOverview \n********\n\nThis repository proves ``pman`` -- a process manager. \n\npman\n====\n\nMost 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``.\n\nOriginally, ``pman`` was designed to track simple processes executed on the local system. 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\n\n- *state*: Is job still running?\n- *result*: What is the stdout (or stderr) from job ?\n- *control*: Kill job \n\n``pman`` also maintains a persistent human-readable/friendly database-in-the-filesystem of jobs and states of jobs.\n\nCurrent versions of ``pman`` however can use container-based backends (swarm and openshift) to execute processes. In those cases, the internal database of tracking jobs becomes superfluous. Future versions of ``pman`` might depreciate the local/internal DB tracking.\n\n\n************\nInstallation\n************\n\nInstallation is relatively straightforward, and we recommend using either python virtual environments or docker.\n\nPython Virtual Environment\n==========================\n\nOn Ubuntu, install the Python virtual environment creator\n\n.. code-block:: bash\n\n sudo apt install virtualenv virtualenvwrapper\n\nThen, create a directory for your virtual environments e.g.:\n\n.. code-block:: bash\n\n mkdir ~/python-envs\n\nYou might want to add to your .bashrc file these two lines:\n\n.. code-block:: bash\n\n export WORKON_HOME=~/python-envs\n source /usr/local/bin/virtualenvwrapper.sh\n\n(Note depending on distro, the ``virtualenvwrapper.sh`` path might be\n\n.. code-block:: bash\n \n /usr/share/virtualenvwrapper/virtualenvwrapper.sh\n\nThen you can source your .bashrc and create a new Python3 virtual environment:\n\n.. code-block:: bash\n\n source .bashrc\n mkvirtualenv --python=python3 python_env\n\nTo activate or \"enter\" the virtual env:\n\n.. code-block:: bash\n\n workon python_env\n\nTo deactivate virtual env:\n\n.. code-block:: bash\n\n deactivate\n \n\nUsing the ``fnndsc/pman`` dock\n==============================\n\nThe easiest option however, is to just use the ``fnndsc/pman`` dock.\n\n.. code-block:: bash\n\n docker pull fnndsc/pman\n \nand then run\n\n.. code-block:: bash\n\n docker run --name pman \\\n -v /home:/Users \\\n --rm -ti \\\n fnndsc/pman \\\n --rawmode 1 --http \\\n --port 5010 \\\n --listeners 12\n\n*****\nUsage\n*****\n\n``pman`` usage\n===============\n\nFor ``pman`` detailed information, see the `pman wiki page `_.\n\n.. code-block:: html\n\n ARGS\n\n [--ip ] \n\n The IP interface on which to listen.\n\n [--port ]\n The port on which to listen. Defaults to '5010'.\n\n [--protocol ]\n The protocol to interpret. Defaults to 'tcp'.\n\n [--rawmode]\n Internal zmq socket server mode. A value of '1' is usually used\n here.\n\n [--listeners ]\n The number of internal threads to which requests are dispatched.\n\n [--http]\n Send return strings as HTTP formatted replies with content-type html.\n\n [--debugToFile]\n If specified, send debugging results to file.\n\n [--debugToFile ]\n In conjunction with --debugToFile, file which will receive debugging info.\n\n [--listenerSleep