From ce5edf6f5cbe90ab5253ec1ead6c3a37a7ccc5e4 Mon Sep 17 00:00:00 2001 From: LY <51789698+Young-Lord@users.noreply.github.com> Date: Wed, 20 May 2026 09:14:24 +0800 Subject: [PATCH] fix(virtdisplay): wait() Xvfb child process to prevent zombie process --- pythonlib/camoufox/virtdisplay.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pythonlib/camoufox/virtdisplay.py b/pythonlib/camoufox/virtdisplay.py index 6a45b83..85da150 100644 --- a/pythonlib/camoufox/virtdisplay.py +++ b/pythonlib/camoufox/virtdisplay.py @@ -116,6 +116,13 @@ class VirtualDisplay: if self.debug: print("Terminating virtual display:", self._display) self.proc.terminate() + try: + self.proc.wait(timeout=5) + except subprocess.TimeoutExpired: + if self.debug: + print("Xvfb did not exit in time, killing forcefully") + self.proc.kill() + self.proc.wait() @staticmethod def _assert_linux() -> None: