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()