X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=nm.py;h=6e56501e5b8c3dcfcacdbae881ddb138f4a6cedb;hb=a474ff48b0b550c033464f3a063fc5d162bca13e;hp=23f5edceadeb0b328b975c6d11cd6834c0c099b1;hpb=96a5f3128b772aaeedb480e6ea784992a0be3f31;p=nodemanager.git diff --git a/nm.py b/nm.py index 23f5edc..6e56501 100644 --- a/nm.py +++ b/nm.py @@ -7,6 +7,8 @@ import time import xmlrpclib import socket import os +import sys +import resource import logger import tools @@ -14,6 +16,9 @@ import tools from config import Config from plcapi import PLCAPI + +savedargv = sys.argv[:] + parser = optparse.OptionParser() parser.add_option('-d', '--daemon', action='store_true', dest='daemon', default=False, help='run daemonized') parser.add_option('-s', '--startup', action='store_true', dest='startup', default=False, help='run all sliver startup scripts') @@ -70,7 +75,15 @@ def run(): except: logger.log_exc() -if __name__ == '__main__': run() +if __name__ == '__main__': + stacklim = 512*1024 # 0.5 MiB + curlim = resource.getrlimit(resource.RLIMIT_STACK)[0] # soft limit + if curlim > stacklim: + resource.setrlimit(resource.RLIMIT_STACK, (stacklim, stacklim)) + # for some reason, doesn't take effect properly without the exec() + python = '/usr/bin/python' + os.execv(python, [python] + savedargv) + run() else: # This is for debugging purposes. Open a copy of Python and import nm tools.as_daemon_thread(run)