Python 中“ulimit”的等价物是什么?

Wes*_*ang 6 python unix resources ulimit

我正在尝试在 Python 中对当前 shell(基本上是 中的所有内容)的系统资源进行检查,ulimit以查看是否可以分配足够的资源。我找到了该resource模块,但它似乎没有ulimit提供所有信息(例如POSIX message queuesreal-time priority)。有没有一种方法可以在不使用外部库的情况下在 Python 中找到这些的软限制和硬限制?如果可能的话,我想避免ulimit作为子进程运行,但如果这是唯一的方法,我会这样做。

Bar*_*mar 7

使用resource.getrlimit()。如果包中没有常量resource,请在以下位置查找/usr/include/bits/resource.h

$ grep RLIMIT_MSGQUEUE /usr/include/bits/resource.h
  __RLIMIT_MSGQUEUE = 12,
#define RLIMIT_MSGQUEUE __RLIMIT_MSGQUEUE
Run Code Online (Sandbox Code Playgroud)

然后你可以自己定义常量:

import resource
RLIMIT_MSGQUEUE = 12
print(resource.getrlimit(RLIMIT_MSGQUEUE))
Run Code Online (Sandbox Code Playgroud)