diff --git a/containers/osbuild-composer/entrypoint.py b/containers/osbuild-composer/entrypoint.py index 1cf7d8622..f38e0f242 100644 --- a/containers/osbuild-composer/entrypoint.py +++ b/containers/osbuild-composer/entrypoint.py @@ -14,6 +14,7 @@ import signal import socket import subprocess import sys +import time class Cli(contextlib.AbstractContextManager): @@ -34,6 +35,14 @@ class Cli(contextlib.AbstractContextManager): prog="container/osbuild-composer", ) + self._parser.add_argument( + "--shutdown-wait-period", + type=int, + default=0, + dest="shutdown_wait_period", + help="Wait period in seconds before terminating child processes", + ) + # --[no-]composer-api self._parser.add_argument( "--composer-api", @@ -325,6 +334,8 @@ class Cli(contextlib.AbstractContextManager): sockets = self._prepare_sockets() def handler(signum, frame): + if self.args.shutdown_wait_period: + time.sleep(self.args.shutdown_wait_period) proc_composer.terminate() proc_worker.terminate() proc_dnf_json.terminate()