A ``setproctitle`` implementation for Python
============================================

:author: Daniele Varrazzo

The library allows a process to change its title (as displayed by system tools
such as ``ps`` and ``top``).

Changing a process title is mostly useful in multi-process systems, for example
when using a pool of slave workers whose job is not decided when the process is
spawned, but later on, after some form of communication from the controlling
process.

The procedure is hardly portable across different systems.  A `good
implementation`_ is provided by PostgreSQL_: this module is a wrapper around
its code.

.. _good implementation: http://doxygen.postgresql.org/ps__status_8c-source.html
.. _PostgreSQL: http://www.postgresql.org


Installation
------------

You can use ``easy_install`` to install the module: to perform a system-wide
installation use::

    sudo easy_install setproctitle

If you are an unprivileged user or you want to limit installation to a local
environment, you can use the command::

    easy_install -d /target/path setproctitle

Notice that ``easy_install`` requires ``/target/path`` to be in your 
``PYTHONPATH``.


Module content
--------------

The module exports the following functions:

``setproctitle(title)``
    Set *title* as the title for the current process.


``getproctitle()``
    Return the current process title.


Module status
-------------

Albeit the core part of the code has been tested on a wild variety of
platforms, compiling the Python module has currently been tested on:

- GNU/Linux
- BSD
- MacOS X
- Windows

Notice that on Windows there is no way to change the process string.
What the module does is to create a Named Object whose value can be read
in tools such as Process Explorer.


Other known implementations and discussions
-------------------------------------------

- `procname`_: a module exposing the same functionality, but less portable 
  and not well packaged.
- `Issue 5672`_: where the introduction of such functionality into the stdlib
  is being discussed.

.. _procname: http://code.google.com/p/procname/
.. _Issue 5672: http://bugs.python.org/issue5672


..
    vim: set filetype=rst:

