nopenpilot/selfdrive/launcher.py

28 lines
723 B
Python

import importlib
from setproctitle import setproctitle #pylint: disable=no-name-in-module
import cereal.messaging as messaging
import selfdrive.crash as crash
from selfdrive.swaglog import cloudlog
def launcher(proc):
try:
# import the process
mod = importlib.import_module(proc)
# rename the process
setproctitle(proc)
# create new context since we forked
messaging.context = messaging.Context()
# exec the process
mod.main()
except KeyboardInterrupt:
cloudlog.warning("child %s got SIGINT" % proc)
except Exception:
# can't install the crash handler becuase sys.excepthook doesn't play nice
# with threads, so catch it here.
crash.capture_exception()
raise