从Python更改流程可用的资源

时间:2016-06-17 11:29:52

标签: python linux python-2.7

有没有办法从Python更改正在运行的流程可用的资源?即我想更改Max open files softhard限制。

我知道我可以使用ulimit -n 1024000并从该shell生成进程,但这需要事先停止该进程。

我也知道prlimit,但Wheezy 7.6 util-linux 2.20.1-5.3无效。

Python resource模块显然允许仅为自己更改限制...

我找到了以下blog article,其中解释了如何使用gdb来解决这个问题,而我只是希望在Python中存在类似内容。

基本上我认为我正在询问如何从Python程序中为正在运行的进程进行setrlimit系统调用。

1 个答案:

答案 0 :(得分:1)

再看一下resource库。函数resource.prlimit()pid作为其第一个参数,如果找不到该ID的进程,则会引发ProcessLookupError。所以我相信这正是你所寻找的。

  

resource.prlimit(pid, resource[, limits])

     

在一个函数中组合setrlimit()getrlimit(),并支持获取和设置任意进程的资源限制。如果pid为0,则该调用适用于当前进程。 [...]

     

如果未给出limits,则该函数返回进程pid的资源限制。当给出limits时,将设置进程的资源限制并返回前一个资源限制。

问题是Python 2.7中没有此功能。希望你可以在python 3中完成这项任务。

相关问题