X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=python%2Fvserver.py;h=6bddee179fb64b5bc8ec99491bb8fba78aa0ab00;hb=5a7d89b238734a86c5da88766305c5483098d599;hp=cf0b84eaea4554554e6e2db553333c20f513c4cc;hpb=42e63a53a5f87b428e35d4a024a903e15a20b5de;p=util-vserver.git diff --git a/python/vserver.py b/python/vserver.py index cf0b84e..6bddee1 100644 --- a/python/vserver.py +++ b/python/vserver.py @@ -9,6 +9,7 @@ import signal import sys import time import traceback +import resource import mountimpl import runcmd @@ -19,16 +20,6 @@ import cpulimit, bwlimit from vserverimpl import VS_SCHED_CPU_GUARANTEED as SCHED_CPU_GUARANTEED from vserverimpl import DLIMIT_INF from vserverimpl import VC_LIM_KEEP - -from vserverimpl import RLIMIT_CPU -from vserverimpl import RLIMIT_RSS -from vserverimpl import RLIMIT_NPROC -from vserverimpl import RLIMIT_NOFILE -from vserverimpl import RLIMIT_MEMLOCK -from vserverimpl import RLIMIT_AS -from vserverimpl import RLIMIT_LOCKS -from vserverimpl import RLIMIT_SIGPENDING -from vserverimpl import RLIMIT_MSGQUEUE from vserverimpl import VLIMIT_NSOCK from vserverimpl import VLIMIT_OPENFD from vserverimpl import VLIMIT_ANON @@ -46,19 +37,19 @@ FLAGS_HIDEINFO = 32 FLAGS_ULIMIT = 64 FLAGS_NAMESPACE = 128 -RLIMITS = {"CPU": RLIMIT_CPU, - "RSS": RLIMIT_RSS, - "NPROC": RLIMIT_NPROC, - "NOFILE": RLIMIT_NOFILE, - "MEMLOCK": RLIMIT_MEMLOCK, - "AS": RLIMIT_AS, - "LOCKS": RLIMIT_LOCKS, - "SIGPENDING": RLIMIT_SIGPENDING, - "MSGQUEUE": RLIMIT_MSGQUEUE, - "NSOCK": VLIMIT_NSOCK, - "OPENFD": VLIMIT_OPENFD, - "ANON": VLIMIT_ANON, - "SHMEM": VLIMIT_SHMEM} +RLIMITS = { "NSOCK": VLIMIT_NSOCK, + "OPENFD": VLIMIT_OPENFD, + "ANON": VLIMIT_ANON, + "SHMEM": VLIMIT_SHMEM} + +# add in the platform supported rlimits +for entry in resource.__dict__.keys(): + if entry.find("RLIMIT_")==0: + k = entry[len("RLIMIT_"):] + if not RLIMITS.has_key(k): + RLIMITS[k]=resource.__dict__[entry] + else: + print "WARNING: duplicate RLIMITS key %s" % k class NoSuchVServer(Exception): pass