use signalfd(2) to support kqueue-style signal events.