diff --git a/vllm/executor/multiproc_gpu_executor.py b/vllm/executor/multiproc_gpu_executor.py index 9811fc2a..19f7a497 100644 --- a/vllm/executor/multiproc_gpu_executor.py +++ b/vllm/executor/multiproc_gpu_executor.py @@ -1,6 +1,7 @@ import asyncio import os import signal +import threading import weakref from functools import partial from typing import Any, List, Optional @@ -115,8 +116,9 @@ class MultiprocessingGPUExecutor(DistributedGPUExecutor): if executor := ref(): executor.shutdown() - signal.signal(signal.SIGINT, shutdown) - signal.signal(signal.SIGTERM, shutdown) + if threading.current_thread() is threading.main_thread(): + signal.signal(signal.SIGINT, shutdown) + signal.signal(signal.SIGTERM, shutdown) self.driver_worker = self._create_worker( distributed_init_method=distributed_init_method)