From 180949c453bdaf3cdd3c0bc0ab88b1bb0745e81d Mon Sep 17 00:00:00 2001 From: Peter Rowlands Date: Mon, 13 Jun 2022 16:48:33 +0900 Subject: [PATCH] proc: set pgrp in spawned daemon processes --- src/dvc_task/proc/process.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/dvc_task/proc/process.py b/src/dvc_task/proc/process.py index b7f915c..115cb8f 100644 --- a/src/dvc_task/proc/process.py +++ b/src/dvc_task/proc/process.py @@ -187,7 +187,7 @@ def spawn(cls, *args, **kwargs) -> Optional[int]: Returns: The spawned process PID. """ - proc = mp.Process( + proc = _DaemonProcess( target=cls._spawn, args=args, kwargs=kwargs, @@ -203,3 +203,10 @@ def spawn(cls, *args, **kwargs) -> Optional[int]: def _spawn(cls, *args, **kwargs): with cls(*args, **kwargs): pass + + +class _DaemonProcess(mp.Process): + def run(self): + if os.name != "nt": + os.setpgid(0, 0) # pylint: disable=no-member + super().run()