From f9ccf2c346bff3e6c4ff56cbcb345b59345d0dac Mon Sep 17 00:00:00 2001 From: Giovanni Harting Date: Fri, 28 Aug 2015 21:41:23 +0200 Subject: [PATCH] merged feature-fork as its working for now --- start.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/start.py b/start.py index f2192a4..eec3164 100644 --- a/start.py +++ b/start.py @@ -36,19 +36,39 @@ if "smbus" not in (name for loader, name, ispkg in iter_modules()): self.channels[(cmd - 8) // 4] = 0 return self.channels[(cmd - 8) // 4] + class SMBusModule: SMBus = SMBus + import sys sys.modules['smbus'] = SMBusModule sys.modules['smbus'].SMBus = SMBus import ledd.daemon +import sys +import os if __name__ == "__main__": logging.basicConfig(level=logging.DEBUG, format="[%(asctime)s] %(levelname)s [%(name)s.%(funcName)s:%(lineno)d] %(message)s", datefmt="%H:%M:%S") log = logging.getLogger(__name__) - daemon = ledd.daemon.Daemon() + + wdir = os.path.dirname(os.path.realpath(__file__)) + try: + pid = os.fork() + if pid == 0: + os.setsid() + pid2 = os.fork() + if pid2 == 0: + os.umask(0) + os.chdir(wdir) + daemon = ledd.daemon.Daemon() + else: + sys.exit() + else: + sys.exit() + except OSError as e: + log.fatal("Forking failed: %s", os.strerror(int(str(e))))