<a id="script"></a>

# Script

In Juju, a **script** refers to any script you execute on a [compute resource](https://documentation.ubuntu.com/juju/4.0/reference/resource-compute.md#resource-compute) provisioned by Juju, whether it is a charm [action](https://documentation.ubuntu.com/juju/4.0/reference/action.md#action) or another kind of script, e.g., a terminal command.

<a id="task"></a>

## Script task

In Juju, a **task** is the execution of a [script](#script) on a target [unit](https://documentation.ubuntu.com/juju/4.0/reference/unit.md#unit) (e.g., for actions, via [juju run](https://documentation.ubuntu.com/juju/4.0/reference/juju-cli/list-of-juju-cli-commands/run.md#command-juju-run), or, for other arbitrary scripts, via [juju exec](https://documentation.ubuntu.com/juju/4.0/reference/juju-cli/list-of-juju-cli-commands/exec.md#command-juju-exec)).

Action tasks are run as defined by the charm author (default: sequentially), whereas tasks related to other scripts are run as set by the charm user (default: parallel).

A group of tasks queued by running an action across one or more units forms an [operation](#operation).

<a id="operation"></a>

## Script operation

In Juju, an **operation** is the group of [tasks](#task) queued by running a [script](#script) across one or more [units](https://documentation.ubuntu.com/juju/4.0/reference/unit.md#unit).
