本文整理汇总了Python中resource.RLIMIT_DATA属性的典型用法代码示例。如果您正苦于以下问题:Python resource.RLIMIT_DATA属性的具体用法?Python resource.RLIMIT_DATA怎么用?Python resource.RLIMIT_DATA使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类resource
的用法示例。
在下文中一共展示了resource.RLIMIT_DATA属性的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: report_resource_limits
# 需要导入模块: import resource [as 别名]
# 或者: from resource import RLIMIT_DATA [as 别名]
def report_resource_limits(logger: logging.Logger) -> None:
resources = [
('CPU time (seconds)', resource.RLIMIT_CPU),
('Heap size (bytes)', resource.RLIMIT_DATA),
('Num. process', resource.RLIMIT_NPROC),
('Num. files', resource.RLIMIT_NOFILE),
('Address space', resource.RLIMIT_AS),
('Locked address space', resource.RLIMIT_MEMLOCK)
]
resource_limits = [
(name, resource.getrlimit(res)) for (name, res) in resources
]
resource_s = '\n'.join([
'* {}: {}'.format(res, lim) for (res, lim) in resource_limits
])
logger.info("resource limits:\n%s", indent(resource_s, 2))
示例2: make_memsafe
# 需要导入模块: import resource [as 别名]
# 或者: from resource import RLIMIT_DATA [as 别名]
def make_memsafe():
if sys.platform.startswith('linux'):
import resource
import psutil
for rsrc in (resource.RLIMIT_AS, resource.RLIMIT_DATA):
freemem = psutil.virtual_memory().free
hard = int(round(freemem *.8))
soft = hard
resource.setrlimit(rsrc, (soft, hard)) #limit to 80% of available memory
示例3: test_data_size
# 需要导入模块: import resource [as 别名]
# 或者: from resource import RLIMIT_DATA [as 别名]
def test_data_size(self):
max_memory = self.memory_limit(resource.RLIMIT_DATA)
prlimit = processutils.ProcessLimits(data_size=max_memory)
self.check_limit(prlimit, 'RLIMIT_DATA', max_memory)
示例4: setProcessLimits
# 需要导入模块: import resource [as 别名]
# 或者: from resource import RLIMIT_DATA [as 别名]
def setProcessLimits(x):
# This is called after fork and before exec. Any messages
# printed here will look like the program that we are calling
# printed them out.
#print("pre switch user")
if switchUser:
if os.geteuid() != 0:
print("We can't switch to a different user if this script is not run as root.")
exit(1)
# If we are supposed to switch to a different user account to do the grading
if os.geteuid() == 0:
os.setreuid(autograderUid,autograderUid)
if os.geteuid() == 0:
print("Still root after trying to switch to autograder user?")
exit(1)
else:
# If we are not switching to a different user, make sure that we don't run as root.
if os.geteuid() == 0:
print("Halting. Do not run submitted programs as root.")
exit(1)
#print("post switch user")
#print("Preexec start")
if os.setpgrp() == -1: # put all processes in the same process group so we can kill it and all children it creates.
print("Failed to set process group!")
#print("Preexec middle")
def limitHelper(limitType, limit):
# limit is a string referring to a previously set environment variable.
if limit in os.environ:
limit = int(os.environ[limit])
(soft, hard) = resource.getrlimit(limitType)
#print("soft %d, hard %d, requested %d\n" % (soft, hard, limit))
if hard > 0 and limit > hard:
limit = hard
resource.setrlimit(limitType, (limit, limit))
limitHelper(resource.RLIMIT_NPROC, "ULIMIT_NPROC")
limitHelper(resource.RLIMIT_AS, "ULIMIT_AS")
limitHelper(resource.RLIMIT_DATA, "ULIMIT_DATA")