From 4d952ebcd4415f9f2b2c805875cc4c132593c997 Mon Sep 17 00:00:00 2001 From: Giampaolo Rodola Date: Thu, 22 Oct 2020 18:23:04 +0000 Subject: update doc --- docs/index.rst | 18 +++++++++--------- psutil/_psutil_posix.c | 4 +++- psutil/arch/freebsd/specific.c | 9 ++++++--- scripts/procinfo.py | 5 ++++- 4 files changed, 22 insertions(+), 14 deletions(-) diff --git a/docs/index.rst b/docs/index.rst index 58df4e99..57f72053 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1354,7 +1354,11 @@ Process class (1024, 1024) >>> - Availability: Linux + Also see `procinfo.py`_ script. + + Availability: Linux, FreeBSD + + .. versionchanged:: 5.7.3 added FreeBSD support .. method:: io_counters() @@ -2522,11 +2526,6 @@ Security To report a security vulnerability, please use the `Tidelift security contact`_. Tidelift will coordinate the fix and disclosure. -.. _`Giampaolo Rodola`: https://gmpy.dev/about -.. _`donation`: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A9ZS7PKKRM3S8 -.. _Tidelift security contact: https://tidelift.com/security -.. _Tidelift Subscription: https://tidelift.com/subscription/pkg/pypi-psutil?utm_source=pypi-psutil&utm_medium=referral&utm_campaign=readme - Development guide ================= @@ -2883,13 +2882,12 @@ Timeline .. _`cpu_distribution.py`: https://github.com/giampaolo/psutil/blob/master/scripts/cpu_distribution.py .. _`development guide`: https://github.com/giampaolo/psutil/blob/master/docs/DEVGUIDE.rst .. _`disk_usage.py`: https://github.com/giampaolo/psutil/blob/master/scripts/disk_usage.py -.. _`donation`: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A9ZS7PKKRM3S8 .. _`enum`: https://docs.python.org/3/library/enum.html#module-enum .. _`fans.py`: https://github.com/giampaolo/psutil/blob/master/scripts/fans.py .. _`GetDriveType`: https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getdrivetypea +.. _`GetExitCodeProcess`: https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-getexitcodeprocess .. _`getfsstat`: http://www.manpagez.com/man/2/getfsstat/ .. _`GetPriorityClass`: https://docs.microsoft.com/en-us/windows/desktop/api/processthreadsapi/nf-processthreadsapi-getpriorityclass -.. _`GetExitCodeProcess`: https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-getexitcodeprocess .. _`Giampaolo Rodola`: https://gmpy.dev/about .. _`hash`: https://docs.python.org/3/library/functions.html#hash .. _`ifconfig.py`: https://github.com/giampaolo/psutil/blob/master/scripts/ifconfig.py @@ -2917,6 +2915,7 @@ Timeline .. _`os.times`: https://docs.python.org//library/os.html#os.times .. _`pmap.py`: https://github.com/giampaolo/psutil/blob/master/scripts/pmap.py .. _`PROCESS_MEMORY_COUNTERS_EX`: https://docs.microsoft.com/en-us/windows/desktop/api/psapi/ns-psapi-_process_memory_counters_ex +.. _`procinfo.py`: https://github.com/giampaolo/psutil/blob/master/scripts/procinfo.py .. _`procsmem.py`: https://github.com/giampaolo/psutil/blob/master/scripts/procsmem.py .. _`resource.getrlimit`: https://docs.python.org/3/library/resource.html#resource.getrlimit .. _`resource.setrlimit`: https://docs.python.org/3/library/resource.html#resource.setrlimit @@ -2929,9 +2928,10 @@ Timeline .. _`SOCK_SEQPACKET`: https://docs.python.org/3/library/socket.html#socket.SOCK_SEQPACKET .. _`SOCK_STREAM`: https://docs.python.org/3/library/socket.html#socket.SOCK_STREAM .. _`socket.fromfd`: https://docs.python.org/3/library/socket.html#socket.fromfd -.. _`subprocess.Popen`: https://docs.python.org/3/library/subprocess.html#subprocess.Popen .. _`subprocess.Popen.wait`: https://docs.python.org/3/library/subprocess.html#subprocess.Popen.wait +.. _`subprocess.Popen`: https://docs.python.org/3/library/subprocess.html#subprocess.Popen .. _`temperatures.py`: https://github.com/giampaolo/psutil/blob/master/scripts/temperatures.py .. _`TerminateProcess`: https://docs.microsoft.com/en-us/windows/desktop/api/processthreadsapi/nf-processthreadsapi-terminateprocess .. _Tidelift security contact: https://tidelift.com/security .. _Tidelift Subscription: https://tidelift.com/subscription/pkg/pypi-psutil?utm_source=pypi-psutil&utm_medium=referral&utm_campaign=readme +.. _Tidelift Subscription: https://tidelift.com/subscription/pkg/pypi-psutil?utm_source=pypi-psutil&utm_medium=referral&utm_campaign=readme diff --git a/psutil/_psutil_posix.c b/psutil/_psutil_posix.c index f1d2afd6..876b4129 100644 --- a/psutil/_psutil_posix.c +++ b/psutil/_psutil_posix.c @@ -15,7 +15,6 @@ #include #include #include -#include #ifdef PSUTIL_SUNOS10 #include "arch/solaris/v10/ifaddrs.h" @@ -42,6 +41,9 @@ #elif defined(PSUTIL_AIX) #include #endif +#if defined(PSUTIL_LINUX) || defined(PSUTIL_FREEBSD) + #include +#endif #include "_psutil_common.h" diff --git a/psutil/arch/freebsd/specific.c b/psutil/arch/freebsd/specific.c index cf281bda..fcfce131 100644 --- a/psutil/arch/freebsd/specific.c +++ b/psutil/arch/freebsd/specific.c @@ -1079,6 +1079,9 @@ error: } +/* + * An emulation of Linux prlimit(). Returns a (soft, hard) tuple. + */ PyObject * psutil_proc_getrlimit(PyObject *self, PyObject *args) { pid_t pid; @@ -1114,6 +1117,9 @@ psutil_proc_getrlimit(PyObject *self, PyObject *args) { } +/* + * An emulation of Linux prlimit() (set). + */ PyObject * psutil_proc_setrlimit(PyObject *self, PyObject *args) { pid_t pid; @@ -1122,7 +1128,6 @@ psutil_proc_setrlimit(PyObject *self, PyObject *args) { int name[5]; struct rlimit new; struct rlimit *newp = NULL; - PyObject *py_soft = NULL; PyObject *py_hard = NULL; @@ -1151,9 +1156,7 @@ psutil_proc_setrlimit(PyObject *self, PyObject *args) { if (new.rlim_max == (rlim_t) - 1 && PyErr_Occurred()) return NULL; #endif - newp = &new; - ret = sysctl(name, 5, NULL, 0, newp, sizeof(*newp)); if (ret == -1) return PyErr_SetFromErrno(PyExc_OSError); diff --git a/scripts/procinfo.py b/scripts/procinfo.py index f0605386..8eea3377 100755 --- a/scripts/procinfo.py +++ b/scripts/procinfo.py @@ -108,11 +108,14 @@ RLIMITS_MAP = { "RLIMIT_NICE": "nice", "RLIMIT_NOFILE": "openfiles", "RLIMIT_NPROC": "maxprocesses", + "RLIMIT_NPTS": "pseudoterms", "RLIMIT_RSS": "rss", "RLIMIT_RTPRIO": "realtimeprio", "RLIMIT_RTTIME": "rtimesched", + "RLIMIT_SBSIZE": "sockbufsize", "RLIMIT_SIGPENDING": "sigspending", "RLIMIT_STACK": "stack", + "RLIMIT_SWAP": "swapuse", } @@ -317,7 +320,7 @@ def run(pid, verbose=False): def main(argv=None): parser = argparse.ArgumentParser( description="print information about a process") - parser.add_argument("pid", type=int, help="process pid") + parser.add_argument("pid", type=int, help="process pid", nargs='?') parser.add_argument('--verbose', '-v', action='store_true', help="print more info") args = parser.parse_args() -- cgit v1.2.1