Modern QA2026Process Cleanup — tiles
Log inJoin
75 / 108 · 03 Agentic Testing Architectures · The Dead Man's Switch Pattern← prev⊞ allnext →☰ Read as one page

10.3Process Cleanup

When a Dead Man's Switch triggers, it kills the process abruptly. This can leave zombie processes (Chrome instances, daemon processes, temp files). Always implement cleanup:

#!/usr/bin/env python3
"""cleanup_agent_processes.py — Run after agentic tests to clean up."""

import subprocess
import os
import signal
import glob

def cleanup():
    # Kill any remaining Chrome processes started by tests
    subprocess.run(["pkill", "-f", "chrome.*--test-type"], capture_output=True)

    # Kill any lingering browser-session processes (playwright-cli sessions)
    subprocess.run(["pkill", "-f", "playwright-cli"], capture_output=True)

    # Kill any chromedriver processes
    subprocess.run(["pkill", "-f", "chromedriver"], capture_output=True)

    # Remove temporary screenshot files
    for f in glob.glob("/tmp/agent_screenshot_*.png"):
        os.remove(f)

    # Remove stale lock files
    for f in glob.glob("/tmp/agent_lock_*"):
        os.remove(f)

    # Remove shared state files from agent runs
    for f in glob.glob("/tmp/agent_state_*.json"):
        os.remove(f)

    print("Agent cleanup complete")

if __name__ == "__main__":
    cleanup()