use user custom signal SIGUSR1 to replace SIGHUP for better cross platform compatibility; fixes #1