aboutsummaryrefslogtreecommitdiffstats
path: root/jprov/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'jprov/main.py')
-rw-r--r--jprov/main.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/jprov/main.py b/jprov/main.py
index a66892c..40cf715 100644
--- a/jprov/main.py
+++ b/jprov/main.py
@@ -5,6 +5,7 @@ from __future__ import annotations
import argparse
import os
import sys
+import time
from datetime import datetime, timezone
from .config import ConfigError, jail_conf_path, load_jail_config, load_main_config, resolve_overlay_path, validate_configs
@@ -52,6 +53,7 @@ def main(argv: list[str] | None = None) -> int:
log_file = os.path.join(main_cfg.log_dir, f"{args.jailname}-{ts}.log")
log_line("INFO", "validate", "OK (config and paths)")
+ log_line("INFO", "config", f"loaded {jail_cfg.config_path}")
template_ds = f"{main_cfg.templates_prefix}{jail_cfg.template}"
jail_ds = f"{main_cfg.containers_prefix}{args.jailname}"
@@ -101,6 +103,13 @@ def main(argv: list[str] | None = None) -> int:
log_line("INFO", "start", f"starting jail {args.jailname}")
run(["service", "jail", "start", args.jailname], log_file=log_file, dry_run=dry_run)
+ if not dry_run:
+ for attempt in range(5):
+ if jail_exists(args.jailname, log_file=log_file):
+ break
+ time.sleep(1)
+ else:
+ raise RuntimeError(f"jail failed to start: {args.jailname}")
if jail_cfg.mounts:
log_line("INFO", "mounts", "mounting nullfs volumes")