You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
723 B
27 lines
723 B
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
|
|
|