test better shutdown nfstream
All checks were successful
Build and Deploy MITM Webserver / build (push) Successful in 9s

This commit is contained in:
2026-03-07 18:23:28 +01:00
parent 01f9f6b5bd
commit 9fc2079e86
3 changed files with 12 additions and 2 deletions

View File

@@ -86,6 +86,7 @@ def main() -> int:
parser.add_argument("--active-timeout", type=int, required=True)
parser.add_argument("--snapshot-length", type=int, required=True)
parser.add_argument("--n-dissections", type=int, required=True)
parser.add_argument("--n-meters", type=int, required=True)
parser.add_argument("--promiscuous-mode", action="store_true")
args = parser.parse_args()
@@ -128,6 +129,7 @@ def main() -> int:
idle_timeout=args.idle_timeout,
active_timeout=args.active_timeout,
n_dissections=args.n_dissections,
n_meters=args.n_meters,
statistical_analysis=False,
accounting_mode=0,
udps=EmitFlowMetadata(),

View File

@@ -185,6 +185,8 @@ class NFStreamManager:
str(settings.nfstream_snapshot_length),
"--n-dissections",
str(settings.nfstream_n_dissections),
"--n-meters",
str(settings.nfstream_n_meters),
]
if settings.nfstream_promiscuous_mode:
cmd.append("--promiscuous-mode")
@@ -198,6 +200,7 @@ class NFStreamManager:
text=True,
bufsize=1,
env=env,
start_new_session=True,
)
except Exception:
logger.exception("Failed to start NFStream worker for %s", iface)
@@ -226,10 +229,13 @@ class NFStreamManager:
if process is not None and process.poll() is None:
try:
process.send_signal(signal.SIGTERM)
os.killpg(os.getpgid(process.pid), signal.SIGTERM)
process.wait(timeout=settings.nfstream_process_stop_timeout_seconds)
except subprocess.TimeoutExpired:
process.kill()
try:
os.killpg(os.getpgid(process.pid), signal.SIGKILL)
except ProcessLookupError:
pass
except Exception:
logger.exception("Failed to stop NFStream worker for %s cleanly", iface)