Currently, the daemon has an active loop. It calls select with a 2 seconds timeout, just to to be sure that no signal was raised.
This could be avoided. I choose the self-pipe trick, cause it's the solution that integrate the most with the current code.
Using pselect would have meant blocking signals just before the call, and would have needed a re-enabling in the process request. I didn't have the time to appreciate the impact of that.