|
Metadata-Version: 2.4 |
|
Name: setproctitle |
|
Version: 1.3.6 |
|
Summary: A Python module to customize the process title |
|
Home-page: https://github.com/dvarrazzo/py-setproctitle |
|
Download-URL: http://pypi.python.org/pypi/setproctitle/ |
|
Author: Daniele Varrazzo |
|
Author-email: daniele.varrazzo@gmail.com |
|
License: BSD-3-Clause |
|
Platform: GNU/Linux |
|
Platform: BSD |
|
Platform: MacOS X |
|
Platform: Windows |
|
Classifier: Development Status :: 5 - Production/Stable |
|
Classifier: Intended Audience :: Developers |
|
Classifier: License :: OSI Approved :: BSD License |
|
Classifier: Programming Language :: C |
|
Classifier: Programming Language :: Python :: 3 |
|
Classifier: Programming Language :: Python :: 3.8 |
|
Classifier: Programming Language :: Python :: 3.9 |
|
Classifier: Programming Language :: Python :: 3.10 |
|
Classifier: Programming Language :: Python :: 3.11 |
|
Classifier: Programming Language :: Python :: 3.12 |
|
Classifier: Programming Language :: Python :: 3.13 |
|
Classifier: Operating System :: POSIX :: Linux |
|
Classifier: Operating System :: POSIX :: BSD |
|
Classifier: Operating System :: MacOS :: MacOS X |
|
Classifier: Operating System :: Microsoft :: Windows |
|
Classifier: Topic :: Software Development |
|
Requires-Python: >=3.8 |
|
Description-Content-Type: text/x-rst |
|
Provides-Extra: test |
|
Requires-Dist: pytest; extra == "test" |
|
Dynamic: author |
|
Dynamic: author-email |
|
Dynamic: classifier |
|
Dynamic: description |
|
Dynamic: description-content-type |
|
Dynamic: download-url |
|
Dynamic: home-page |
|
Dynamic: license |
|
Dynamic: platform |
|
Dynamic: provides-extra |
|
Dynamic: requires-python |
|
Dynamic: summary |
|
|
|
A Python module to customize the process title |
|
============================================== |
|
|
|
.. image:: https://github.com/dvarrazzo/py-setproctitle/workflows/Tests/badge.svg |
|
:target: https://github.com/dvarrazzo/py-setproctitle/actions?query=workflow%3ATests |
|
:alt: Tests |
|
|
|
:author: Daniele Varrazzo |
|
|
|
The ``setproctitle`` module allows a process to change its title (as displayed |
|
by system tools such as ``ps``, ``top`` or MacOS Activity Monitor). |
|
|
|
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 package was born as a wrapper |
|
around PostgreSQL code. |
|
|
|
- `Homepage <https://github.com/dvarrazzo/py-setproctitle>`__ |
|
- `Download <http://pypi.python.org/pypi/setproctitle/>`__ |
|
- `Bug tracker <https://github.com/dvarrazzo/py-setproctitle/issues>`__ |
|
|
|
|
|
.. _PostgreSQL: http://www.postgresql.org |
|
.. _OpenSSH Server: http://www.openssh.com/ |
|
.. __: http://doxygen.postgresql.org/ps__status_8c_source.html |
|
|
|
|
|
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. |
|
|
|
.. _pip: https://pip.readthedocs.org/ |
|
.. _virtualenv: https://virtualenv.readthedocs.org/ |
|
|
|
|
|
Usage |
|
----- |
|
|
|
.. note:: |
|
You should import and use the module (even just calling ``getproctitle()``) |
|
pretty early in your program lifetime: code writing env vars `may |
|
interfere`__ with the module initialisation. |
|
|
|
.. __: https://github.com/dvarrazzo/py-setproctitle/issues/42 |
|
|
|
|
|
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. |
|
|
|
.. _Process Explorer: http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx |
|
|
|
Releases history |
|
---------------- |
|
|
|
Version 1.3.6 |
|
------------- |
|
|
|
- Add support for free-threading (issue |
|
|
|
|
|
Version 1.3.5 |
|
------------- |
|
|
|
- Fix bouncing Dock icon on macOS (issue |
|
- Fix building on C23 compilers (issue |
|
|
|
|
|
Version 1.3.4 |
|
------------- |
|
|
|
- Add support for Python 3.13 (issue |
|
- Drop support for Python 3.7. |
|
|
|
|
|
Version 1.3.3 |
|
------------- |
|
|
|
- Add support for Python 3.12. |
|
- Fix package metadata to include Python 3.11, 3.12. |
|
|
|
|
|
Version 1.3.2 |
|
------------- |
|
|
|
- Restore import-time initialization of macOS to avoid crash on thread+fork |
|
(issue |
|
|
|
|
|
Version 1.3.1 |
|
------------- |
|
|
|
- Fixed segfault on macOS 12.5 in forked processes (issue |
|
Note that, as a workaround, Activity Monitor will show the title of the |
|
parent. |
|
|
|
|
|
Version 1.3.0 |
|
------------- |
|
|
|
- Added fallback no-op implementation if building the extension fails. |
|
- Added support for displaying title as the process name in MacOS Activity |
|
Monitor (issue |
|
- Fixed "Symbol not found: _Py_GetArgcArgv" error when using Xcode provided |
|
Python (issues |
|
- Fixed FreeBSD support, broken in 1.2 (issue |
|
- Added package type annotations (issue |
|
- Dropped support for Python 3.6. |
|
|
|
|
|
Version 1.2.3 |
|
------------- |
|
|
|
- Added Python 3.10 packages (issue |
|
- Added Wheel packages for macOS (issue |
|
- Package build moved to cibuildwheel, other wheels provided (issue |
|
|
|
|
|
Version 1.2.2 |
|
------------- |
|
|
|
- Fixed Windows build (issues |
|
- Added wheel packages for Windows (issues |
|
- Added wheel packages for aarch64 (issue |
|
|
|
|
|
Version 1.2.1 |
|
------------- |
|
|
|
- Fixed segfault after ``os.environ.clear()`` (issue |
|
|
|
|
|
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 (issue |
|
- Improved build on BSD, dropped ancient versions (issue |
|
- Fixed build for Python 3.8 (issues |
|
- Added support for Python 3.9 |
|
- Dropped support for Python < 3.6 |
|
|
|
|
|
Version 1.1.10 |
|
~~~~~~~~~~~~~~ |
|
|
|
- Fixed building with certain ``prctl.h`` implementations (issue |
|
- Use ``setuptools`` if available (issue |
|
|
|
|
|
Version 1.1.9 |
|
~~~~~~~~~~~~~ |
|
|
|
- Fixed build on VC (issues |
|
- Added ``MANIFEST.in`` to the source distribution to help with RPM building |
|
(issue |
|
|
|
|
|
Version 1.1.8 |
|
~~~~~~~~~~~~~ |
|
|
|
- Added support for Python "diehard" 2.4 (pull request |
|
- Fixed build on Mac OS X 10.9 Maverick (issue |
|
|
|
|
|
Version 1.1.7 |
|
~~~~~~~~~~~~~ |
|
|
|
- Added PyPy support, courtesy of Ozan Turksever - http://www.logsign.net |
|
(pull request |
|
|
|
|
|
Version 1.1.6 |
|
~~~~~~~~~~~~~ |
|
|
|
- The module can be compiled again on Windows (issue |
|
|
|
|
|
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 |
|
|
|
|
|
Version 1.1.2 |
|
~~~~~~~~~~~~~ |
|
|
|
- Find the setproctitle include file on OpenBSD (issue |
|
- Skip test with unicode if the file system encoding wouldn't make it pass |
|
(issue |
|
|
|
|
|
Version 1.1.1 |
|
~~~~~~~~~~~~~ |
|
|
|
- Fixed segfault when the module is imported under mod_wsgi (issue |
|
|
|
|
|
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 |
|
|
|
|
|
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 |
|
~~~~~~~~~~~ |
|
|
|
- Module works on BSD (tested on FreeBSD 7.2). |
|
|
|
- Module works on Windows. Many thanks to `Develer`_ for providing a neat `GCC |
|
package for Windows with Python integration`__ that made the Windows porting |
|
painless. |
|
|
|
.. _Develer: http://www.develer.com/ |
|
.. __: http://www.develer.com/oss/GccWinBinaries |
|
|
|
|
|
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. |
|
|