juju-exec
¶
Summary¶
Run commands in a unit’s hook context.
Usage¶
juju-exec [options] [-u] [<unit-name>] <commands>
Options¶
--force-remote-unit (= false)
run the commands for a specific relation context, bypassing the remote unit check
--no-context (= false)
do not run the command in a unit context
--operator (= false)
run the commands on the operator instead of the workload. Only supported on k8s workload charms
-r, --relation (= "")
run the commands for a specific relation context on a unit
--remote-app (= "")
run the commands for a specific remote application in a relation context on a unit
--remote-unit (= "")
run the commands for a specific remote unit in a relation context on a unit
-u (= "-")
explicit unit-name, all other arguments are commands. if -u is passed an empty string, unit-name is inferred from state
Details¶
Run the specified commands in the hook context for the unit.
<unit-name>
can be either the unit tag, i.e. unit-ubuntu-0
, or the unit id, i.e., ubuntu/0
.
<unit-name>
can be specified by the -u
argument. If -u
is passed, unit-name
cannot be passed as a positional argument.
If --no-context
is specified, the <unit-name>
positional
argument or -u argument is not needed.
If the there’s one and only one unit on this host, <unit-name>
is automatically inferred and the positional argument is not needed.
If -u
is passed an empty string, this behaviour is also observed.
Examples¶
juju-exec app/0 hostname -f
juju-exec --no-context -- hostname -f
juju-exec "hostname -f"
juju-exec -u "" -- hostname -f
juju-exec -u app/0 "hostname -f"
juju-exec -u app/0 -- hostname -f
The commands are executed with /bin/bash -s
, and the output returned.