in reply to Re^3: Why this daemon can only receive the HUP signal no more than one time?
in thread Why this daemon can only receive the HUP signal no more than one time?

$action=POSIX::SigAction->new('doSigHup',$sigset,&POSIX::SA_NODEFER);
Note that you are setting up an "unsafe" signal, as opposed to Safe Signal that original poster was using. Furthermore, the use of SA_NODEFER to avoid changes to sigprocmask has the unfortunate side-effect of making your handler re-interruptable from within its own signal handler.

Altogether, a particularly nasty concoction that may eventually result in data corruption. I'd rather advise to just clear the blocked signal at program (re)start, after the handler is assigned of course.