diff --git a/README.md b/README.md index f437635..efc1055 100644 --- a/README.md +++ b/README.md @@ -131,7 +131,10 @@ Non-TPDU messages (ATR, PPS, card state changes, Fi/Di) print identically in all ## Background / Daemon -SIGHUP is ignored by default — terminal closure won't kill the sniffer. +SIGHUP is automatically ignored when stdin is not a terminal (i.e. run in +background or via a pipe). Foreground terminal sessions still respond to +SIGHUP normally. + To run persistently in the background with output to files: ```sh diff --git a/simtrace2_pysniff/__main__.py b/simtrace2_pysniff/__main__.py index 4b49d82..671f7cd 100644 --- a/simtrace2_pysniff/__main__.py +++ b/simtrace2_pysniff/__main__.py @@ -131,7 +131,8 @@ def main(): file_dumper.close() sys.exit(0) - signal.signal(signal.SIGHUP, signal.SIG_IGN) + if not sys.stdin.isatty(): + signal.signal(signal.SIGHUP, signal.SIG_IGN) signal.signal(signal.SIGINT, on_signal) signal.signal(signal.SIGTERM, on_signal)