Skip to main content

A Python module to customize the process title

Project description

Author:

Daniele Varrazzo

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

Changing the title is mostly useful in multi-process systems, for example when a master process is forked: changing the children’s title allows to identify the task each process is busy with. The technique is used by PostgreSQL and the OpenSSH Server for example.

The procedure is hardly portable across different systems. PostgreSQL provides a good multi-platform implementation: this module is a Python wrapper around PostgreSQL code.

Installation

setproctitle is a C extension: in order to build it you will need a C compiler and the Python development support (the python-dev or python3-dev package in most Linux distributions). No further external dependencies are required.

You can use pip to install the module:

pip install setproctitle

You can use pip -t or virtualenv for local installations, sudo pip for a system-wide one… the usual stuff. Read pip or virtualenv docs for all the details.

Usage

The setproctitle module exports the following functions:

setproctitle(title)

Set title as the title for the current process.

getproctitle()

Return the current process title.

The process title is usually visible in files such as /proc/PID/cmdline, /proc/PID/status, /proc/PID/comm, depending on the operating system and kernel version. These information are used by user-space tools such as ps and top.

setthreadtitle(title)

Set title as the title for the current thread.

getthreadtitle()

Get the current thread title.

The thread title is exposed by some operating systems as the file /proc/PID/task/TID/comm, which is used by certain tools such as htop.

Environment variables

A few environment variables can be used to customize the module behavior:

SPT_NOENV

Avoid clobbering /proc/PID/environ.

On many platforms, setting the process title will clobber the environ memory area. os.environ will work as expected from within the Python process, but the content of the file /proc/PID/environ will be overwritten. If you require this file not to be broken you can set the SPT_NOENV environment variable to any non-empty value: in this case the maximum length for the title will be limited to the length of the command line.

SPT_DEBUG

Print debug information on stderr.

If the module doesn’t work as expected you can set this variable to a non-empty value to generate information useful for debugging. Note that the most useful information is printed when the module is imported, not when the functions are called.

Module status

The module can be currently compiled and effectively used on the following platforms:

  • GNU/Linux

  • BSD

  • MacOS X

  • Windows

Note 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 using a tool such as Process Explorer (contribution of a more useful tool to be used together with setproctitle would be well accepted).

The module can probably work on HP-UX, but I haven’t found any to test with. It is unlikely that it can work on Solaris instead.

Releases history

Version 1.2

  • added getthreadtitle() and setthreadtitle().

  • Initialisation of the module moved to the first usage: importing the module doesn’t cause side effects.

  • Manage much longer command lines (#52)

  • Improved build on BSD, dropped ancient versions (issue #67).

  • Fixed build for Python 3.8 (#66, #72)

  • Added support for Python 3.9

  • Dropped support for Python < 3.6

Version 1.1.10

  • Fixed building with certain prctl.h implementations (issue #44).

  • Use setuptools if available (issue #48).

Version 1.1.9

  • Fixed build on VC (issues #20, #33).

  • Added MANIFEST.in to the source distribution to help with RPM building (issue #30).

Version 1.1.8

  • Added support for Python “diehard” 2.4 (pull request #3).

  • Fixed build on Mac OS X 10.9 Maverick (issue #27).

Version 1.1.7

Version 1.1.6

  • The module can be compiled again on Windows (issue #21).

Version 1.1.5

  • No module bug, but a packaging issue: files README and HISTORY added back into the distribution.

Version 1.1.4

  • The module works correctly in embedded Python.

  • setproctitle() accepts a keyword argument.

  • Debug output support always compiled in: the variable SPT_DEBUG can be used to emit debug log.

Version 1.1.3

  • Don’t clobber environ if the variable SPT_NOENV is set (issue #16).

Version 1.1.2

  • Find the setproctitle include file on OpenBSD (issue #11).

  • Skip test with unicode if the file system encoding wouldn’t make it pass (issue #13).

Version 1.1.1

  • Fixed segfault when the module is imported under mod_wsgi (issue #9).

Version 1.1

  • The module works correctly with Python 3.

Version 1.0.1

  • setproctitle() works even when Python messes up with argv, e.g. when run with the -m option (issue #8).

Version 1.0

No major change since the previous version. The module has been heavily used in production environment without any problem reported, so it’s time to declare it stable.

Version 0.4

Version 0.3

  • Module works on Mac OS X 10.2. Reported working on OS X 10.6 too.

Version 0.2

  • Added prctl() call on Linux >= 2.6.9 to update /proc/self/status.

Version 0.1

  • Initial public release.

Project details


Download files

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

Source Distribution

setproctitle-1.2.tar.gz (23.5 kB view details)

Uploaded Source

Built Distributions

setproctitle-1.2-cp39-cp39-manylinux1_x86_64.whl (35.2 kB view details)

Uploaded CPython 3.9

setproctitle-1.2-cp39-cp39-manylinux1_i686.whl (34.3 kB view details)

Uploaded CPython 3.9

setproctitle-1.2-cp38-cp38-manylinux1_x86_64.whl (35.9 kB view details)

Uploaded CPython 3.8

setproctitle-1.2-cp38-cp38-manylinux1_i686.whl (34.9 kB view details)

Uploaded CPython 3.8

setproctitle-1.2-cp37-cp37m-manylinux1_x86_64.whl (36.5 kB view details)

Uploaded CPython 3.7m

setproctitle-1.2-cp37-cp37m-manylinux1_i686.whl (35.2 kB view details)

Uploaded CPython 3.7m

setproctitle-1.2-cp36-cp36m-manylinux1_x86_64.whl (35.3 kB view details)

Uploaded CPython 3.6m

setproctitle-1.2-cp36-cp36m-manylinux1_i686.whl (34.2 kB view details)

Uploaded CPython 3.6m

File details

Details for the file setproctitle-1.2.tar.gz.

File metadata

  • Download URL: setproctitle-1.2.tar.gz
  • Upload date:
  • Size: 23.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.8.5

File hashes

Hashes for setproctitle-1.2.tar.gz
Algorithm Hash digest
SHA256 9b4e48722dd96cbd66d5bf2eab930fff8546cd551dd8d774c8a319448bd381a6
MD5 35a0fdecfb4855f1d0472be8f00efbc1
BLAKE2b-256 a59559d0c3979739802b830f5a715e6986613ed2a33c93c823c256fb89fdd299

See more details on using hashes here.

File details

Details for the file setproctitle-1.2-cp39-cp39-manylinux1_x86_64.whl.

File metadata

  • Download URL: setproctitle-1.2-cp39-cp39-manylinux1_x86_64.whl
  • Upload date:
  • Size: 35.2 kB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.8.5

File hashes

Hashes for setproctitle-1.2-cp39-cp39-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 1efd52cabc8137a9c213786aab0031dc9e39263aa07320f3d4df46b3acc6c3bb
MD5 cdb8d87a58d2aaf9f799ec6e8188b8a9
BLAKE2b-256 354423745e3a1ed62a709d752592e6f7b0dbe7e4319ae0db5670dae6d37e58ab

See more details on using hashes here.

File details

Details for the file setproctitle-1.2-cp39-cp39-manylinux1_i686.whl.

File metadata

  • Download URL: setproctitle-1.2-cp39-cp39-manylinux1_i686.whl
  • Upload date:
  • Size: 34.3 kB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.8.5

File hashes

Hashes for setproctitle-1.2-cp39-cp39-manylinux1_i686.whl
Algorithm Hash digest
SHA256 da774fd1d10aaf19fe0ef1662f272cd6bbd7835996f1455538ca687f7f6e3e0a
MD5 b8e37e376a017071d5725223a2571ce9
BLAKE2b-256 9abc07dc31f56fd123e8b14366bb856e61ec922da81d4090749a70fa8d7d0a22

See more details on using hashes here.

File details

Details for the file setproctitle-1.2-cp38-cp38-manylinux1_x86_64.whl.

File metadata

  • Download URL: setproctitle-1.2-cp38-cp38-manylinux1_x86_64.whl
  • Upload date:
  • Size: 35.9 kB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.8.5

File hashes

Hashes for setproctitle-1.2-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 2f01f4c828f08d70074eb9bc6810c854719f72037f4cdd3318f2469ebf65674c
MD5 b5258ccce8f07fce8b7e785c47c7bba4
BLAKE2b-256 9ad36be7555b66c0c302460e252a513ebfce8c4e5bd3928098f59bcc989f03a6

See more details on using hashes here.

File details

Details for the file setproctitle-1.2-cp38-cp38-manylinux1_i686.whl.

File metadata

  • Download URL: setproctitle-1.2-cp38-cp38-manylinux1_i686.whl
  • Upload date:
  • Size: 34.9 kB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.8.5

File hashes

Hashes for setproctitle-1.2-cp38-cp38-manylinux1_i686.whl
Algorithm Hash digest
SHA256 980fbf15c5a09614b501cbb4920b829563527c23b682a555bb1fc7c46c2134e1
MD5 b9516e1b71b0a4d97e87834b03cb43ca
BLAKE2b-256 c39ed7a30962978aeb08128b2343095468c13fa775eeb438ad1253e0b0321385

See more details on using hashes here.

File details

Details for the file setproctitle-1.2-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

  • Download URL: setproctitle-1.2-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 36.5 kB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.8.5

File hashes

Hashes for setproctitle-1.2-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 262dad89d0126fcfda5f96c85964b74b594e443e11abd6b16730bf810b967e42
MD5 42affe0b2bb4be9a8a046a26cb30a40a
BLAKE2b-256 d474f4d8f2a85767060d5f1ed7c89b51bd80f2328e06f1be057df99de75e3ad9

See more details on using hashes here.

File details

Details for the file setproctitle-1.2-cp37-cp37m-manylinux1_i686.whl.

File metadata

  • Download URL: setproctitle-1.2-cp37-cp37m-manylinux1_i686.whl
  • Upload date:
  • Size: 35.2 kB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.8.5

File hashes

Hashes for setproctitle-1.2-cp37-cp37m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 f85501c4a44af18e87d9814cbc525fa2c962d7c278ad64ae5634834b8b449a96
MD5 87b3178a70204c2d644b824d70c96eac
BLAKE2b-256 ef525b1fbf86fdb9262f044383878281fbb022a249050296c36d1f4c2916074e

See more details on using hashes here.

File details

Details for the file setproctitle-1.2-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

  • Download URL: setproctitle-1.2-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 35.3 kB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.8.5

File hashes

Hashes for setproctitle-1.2-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 b5a24361df1d05dad8569688476932c9f67015fffbfdf6e07169a91f06cbe2dd
MD5 1d5b52f418782c6c06388fd703168841
BLAKE2b-256 2afc2f6446ee2696c74609fdd61072108ef0892a72783e016451b195ac3f2e81

See more details on using hashes here.

File details

Details for the file setproctitle-1.2-cp36-cp36m-manylinux1_i686.whl.

File metadata

  • Download URL: setproctitle-1.2-cp36-cp36m-manylinux1_i686.whl
  • Upload date:
  • Size: 34.2 kB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.8.5

File hashes

Hashes for setproctitle-1.2-cp36-cp36m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 a414d3083a92be6e5c896b68ed8bd4cbdb3d1f0286ec857ecca877bfbf91d084
MD5 1f043e391cd66fe0bf17e76db2123a0c
BLAKE2b-256 ccc05fc49b5452639756fd3fb702466fb3857c7a5b5df198ee227bd9f8ec883b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page