Package: setproctitle
author:Daniele VarrazzoThesetproctitlemodule allows a process to change its title (as displayed
by system tools such asps,topor 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 byPostgreSQLand theOpenSSH Serverfor example.The procedure is hardly portable across different systems.  PostgreSQL provides
a goodmulti-platform implementation:  this package was born as a wrapper
around PostgreSQL code.HomepageDownloadBug trackerInstallationsetproctitleis a C extension: in order to build it you will need a C
compiler and the Python development support (thepython-devorpython3-devpackage in most Linux distributions). No further external
dependencies are required.You can usepipto install the module:pip install setproctitleYou can usepip-torvirtualenvfor local installations,sudo pipfor a system-wide one… the usual stuff. Readpiporvirtualenvdocs for
all the details.UsageNoteYou should import and use the module (even just callinggetproctitle())
pretty early in your program lifetime: code writing env varsmay
interferewith the module initialisation.Thesetproctitlemodule exports the following functions:setproctitle(title)Settitleas 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 aspsandtop.setthreadtitle(title)Settitleas 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 ashtop.Environment variablesA few environment variables can be used to customize the module behavior:SPT_NOENVAvoid clobbering/proc/PID/environ.On many platforms, setting the process title will clobber theenvironmemory area.os.environwill work as expected from within
the Python process, but the content of the file/proc/PID/environwill
be overwritten.  If you require this file not to be broken you can set theSPT_NOENVenvironment 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_DEBUGPrint debug information onstderr.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 statusThe module can be currently compiled and effectively used on the following
platforms:GNU/LinuxBSDMacOS XWindowsNote that on Windows there is no way to change the process string:
what the module does is to create aNamed Objectwhose value can be read
using a tool such asProcess Explorer(contribution of a more useful tool
to be used together withsetproctitlewould 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 historyVersion 1.3.2Restore import-time initialization of macOS to avoid crash on thread+fork
(issue #113).Version 1.3.1Fixed segfault on macOS 12.5 in forked processes (issue #111).
Note that, as a workaround, Activity Monitor will show the title of the
parent.Version 1.3.0Added fallback no-op implementation if building the extension fails.Added support for displaying title as the process name in MacOS Activity
Monitor (issue #10).Fixed “Symbol not found: _Py_GetArgcArgv” error when using Xcode provided
Python (issues #82, #103).Fixed FreeBSD support, broken in 1.2 (issue #94).Added package type annotations (issue #101).Dropped support for Python 3.6.Version 1.2.3Added Python 3.10 packages (issue #102).Added Wheel packages for macOS (issue #96).Package build moved to cibuildwheel, other wheels provided (issue #47).Version 1.2.2Fixed Windows build (issues #89, #90).Added wheel packages for Windows (issues #47, #90).Added wheel packages for aarch64 (issue #95).Version 1.2.1Fixed segfault afteros.environ.clear()(issue #88).Version 1.2addedgetthreadtitle()andsetthreadtitle().Initialisation of the module moved to the first usage: importing the module
doesn’t cause side effects.Manage much longer command lines (issue #52)Improved build on BSD, dropped ancient versions (issue #67).Fixed build for Python 3.8 (issues #66, #72)Added support for Python 3.9Dropped support for Python < 3.6Version 1.1.10Fixed building with certainprctl.himplementations (issue #44).Usesetuptoolsif available (issue #48).Version 1.1.9Fixed build on VC (issues #20, #33).AddedMANIFEST.into the source distribution to help with RPM building
(issue #30).Version 1.1.8Added support for Python “diehard” 2.4 (pull request #3).Fixed build on Mac OS X 10.9 Maverick (issue #27).Version 1.1.7Added PyPy support, courtesy of Ozan Turksever -http://www.logsign.net(pull request #2).Version 1.1.6The module can be compiled again on Windows (issue #21).Version 1.1.5No module bug, but a packaging issue: filesREADMEandHISTORYadded back into the distribution.Version 1.1.4The module works correctly in embedded Python.setproctitle()accepts a keyword argument.Debug output support always compiled in: the variableSPT_DEBUGcan be
used to emit debug log.Version 1.1.3Don’t clobber environ if the variableSPT_NOENVis set (issue #16).Version 1.1.2Find 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.1Fixed segfault when the module is imported under mod_wsgi (issue #9).Version 1.1The module works correctly with Python 3.Version 1.0.1setproctitle()works even when Python messes up with argv, e.g. when run
with the -m option (issue #8).Version 1.0No 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.4Module works on BSD (tested on FreeBSD 7.2).Module works on Windows. Many thanks toDevelerfor providing a neatGCC
package for Windows with Python integrationthat made the Windows porting
painless.Version 0.3Module works on Mac OS X 10.2. Reported working on OS X 10.6 too.Version 0.2Addedprctl()call on Linux >= 2.6.9 to update/proc/self/status.Version 0.1Initial public release.