signal SIGHUP separately, so we can use it for reloading
support writing to a file, and allow reopening (for rotation)