Windows上的资源限制?

时间:2012-06-05 05:51:52

标签: python windows posix ulimit setrlimit

Python的resource模块和POSIX setrlimit在Unix系统上公开的资源限制机制的Windows等价物是什么?

具体来说,我将子进程的处理器时间限制为几秒钟。如果它没有在约束内完成,则终止。

1 个答案:

答案 0 :(得分:3)

AFAIK,没有可移植的方法来获取有关Python中子进程使用的处理器时间量的信息。但是subprocess模块做了什么(假设您使用subprocess.Popen启动子项,这是推荐的)给出的是Popen.pid中子进程的进程ID。您可以在Windows上执行的操作是重复使用tasklist运行subprocess.check_output(请参阅manual),并使用PID作为过滤器从输出中提取有关子进程的信息。

只要子进程有足够的CPU时间,并且使用subprocess.Popen()启动子进程,就可以使用Popen.kill方法将其终止。

但我认为使用计时器在指定的挂起时间秒后杀死子进程会更容易。因为如果子进程在没有使用CPU时间的情况下挂起(无论出于何种原因),那么等待它消耗CPU时间的python程序也是如此。