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.
28 lines
723 B
28 lines
723 B
5 years ago
|
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
|