Spaces:
Sleeping
Sleeping
File size: 1,107 Bytes
acd4009 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
from dataclasses import dataclass, fields
@dataclass(kw_only=True)
class ResourceLimits:
core: int = 0 # RLIMIT_CORE
data: int = -1 # RLIMIT_DATA
# nice: int = 20 # RLIMIT_NICE
fsize: int = 0 # RLIMIT_FSIZE
sigpending: int = 0 # RLIMIT_SIGPENDING
# memlock: int = -1 # RLIMIT_MEMLOCK
rss: int = -1 # RLIMIT_RSS
nofile: int = 4 # RLIMIT_NOFILE
msgqueue: int = 0 # RLIMIT_MSGQUEUE
rtprio: int = 0 # RLIMIT_RTPRIO
stack: int = -1 # RLIMIT_STACK
cpu: int = 2 # RLIMIT_CPU, CPU time, in seconds.
nproc: int = 1 # RLIMIT_NPROC
_as: int = 2 * 1024 ** 3 # RLIMIT_AS set to 2GB by default
locks: int = 0 # RLIMIT_LOCKS
# rttime: int = 2 # RLIMIT_RTTIME, Timeout for real-time tasks.
def fields(self):
for field in fields(self):
yield field.name
if __name__ == "__main__":
limits = ResourceLimits()
prlimit_str = " ".join(
f"--{field.name[1:] if field.name.startswith('_') else field.name}={getattr(limits, field.name)}"
for field in fields(limits)
)
print(prlimit_str)
|