Command line

eessi-arch-guard [--shell] [--strict] [--chain PATH] [--timeout SEC] [--restore] [-h|--help] [--version]

python3 src/eessi_arch_guard.py --help prints:

usage: eessi-arch-guard [--shell] [--chain PATH] [--timeout SEC] [--restore] [-h|--help] [--version]

Slurm TaskProlog: when the loaded EESSI CPU or accelerator target is not this
node's, print export/unset lines for the reloaded module environment.
--shell prints bash for: eval "$(eessi-arch-guard --shell)"
--chain PATH runs an existing task prolog first. Slurm does not pass arguments,
so a site sets this in a wrapper or in a root-owned eessi-arch-guard.conf.
--timeout SEC bounds the decision. The default is 60 seconds.
--restore reads a JSON restore request on stdin and writes the JSON result.
-h, --help print this text. --version prints the version.

python3 src/eessi_arch_guard.py --version prints 0.1.1.

Flag

Effect

--shell

Bash assignments on stdout, message on stderr. See Run the guard from a batch script.

--chain PATH

Run this absolute executable first. A user job cannot pass it; Slurm supplies no arguments. See Configure the guard.

--chain=PATH

Same as --chain PATH.

--timeout SEC

Deadline in seconds. Overrides the config timeout key. SEC has to be greater than 0 and at most threading.TIMEOUT_MAX. Any other value is ignored, a warning goes to stderr, and the default of 60 is used.

--timeout=SEC

Same as --timeout SEC.

--restore

Helper mode. Read one JSON request on stdin and write one JSON object on stdout. The prolog execs this itself.

-h, --help

Print the usage text and exit 0.

--version

Print the version and exit 0.

Flags other than these are skipped. The process exits 0 unless a chained prolog exits non-zero, or --restore hits an exception (that path exits 1 and writes the reason to stderr). The TaskProlog path catches exceptions and exits 0.

--restore is the helper described in Concepts. The JSON request has keys v (1), env, eessi, modules, and lmod. Names and values are the Latin-1 wire form from eessi_arch_guard.to_wire().

Strict user job and step status

--strict returns 78 when the decision fails or an unexpected exception interrupts it. The same flag works with --shell and with task-prolog output. A successful reload, a same-target no-op or an intentional skip returns zero. A chained prolog failure retains its own nonzero status. Without --strict, the default site TaskProlog keeps its fail-open decision policy.