test better shutdown nfstream
All checks were successful
Build and Deploy MITM Webserver / build (push) Successful in 9s
All checks were successful
Build and Deploy MITM Webserver / build (push) Successful in 9s
This commit is contained in:
@@ -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(),
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user