On modern systems, both *BSD and Linux using GLIBC/musl, the signal's
disposition is not reset to SIG_DFL on invocation of its handler. On
Linux this is true because GLIBC/musl wraps signal() in sigaction()
with the same semantics as BSD.
A follow-up commit will refactor to use sigaction().
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>