kqueue(2) file descriptors aren't inherited by child processes therefore we need to fork before we call event_base_new from libevent.
This is pretty annoying because it means we need to rework lightsd's initialization process.
A quick hack/workaround by replacing fork with rfork(RFPROC), also seems to indicate that signal handling isn't working once in the background.
Thanks @kraduk for reporting this issue.
kqueue(2)file descriptors aren't inherited by child processes therefore we need to fork before we callevent_base_newfrom libevent.This is pretty annoying because it means we need to rework lightsd's initialization process.
A quick hack/workaround by replacing
forkwithrfork(RFPROC), also seems to indicate that signal handling isn't working once in the background.Thanks @kraduk for reporting this issue.