2015-09-20 22:31:33 +00:00
|
|
|
---
|
|
|
|
layout: "docs"
|
|
|
|
page_title: "Drivers: Exec"
|
|
|
|
sidebar_current: "docs-drivers-exec"
|
|
|
|
description: |-
|
|
|
|
The Exec task driver is used to run binaries using OS isolation primitives.
|
|
|
|
---
|
|
|
|
|
2015-10-08 18:36:22 +00:00
|
|
|
# Isolated Fork/Exec Driver
|
2015-09-20 22:31:33 +00:00
|
|
|
|
|
|
|
Name: `exec`
|
|
|
|
|
2015-09-20 22:42:33 +00:00
|
|
|
The `exec` driver is used to simply execute a particular command for a task.
|
2015-10-08 19:18:44 +00:00
|
|
|
However unlike [`raw_exec`](raw_exec.html) it uses the underlying isolation
|
|
|
|
primitives of the operating system to limit the tasks access to resources. While
|
|
|
|
simple, since the `exec` driver can invoke any command, it can be used to call
|
|
|
|
scripts or other wrappers which provide higher level features.
|
2015-09-20 22:42:33 +00:00
|
|
|
|
|
|
|
## Task Configuration
|
|
|
|
|
|
|
|
The `exec` driver supports the following configuration in the job spec:
|
|
|
|
|
|
|
|
* `command` - The command to execute. Must be provided.
|
|
|
|
|
|
|
|
* `args` - The argument list to the command, space seperated. Optional.
|
|
|
|
|
|
|
|
## Client Requirements
|
|
|
|
|
2015-09-23 01:31:13 +00:00
|
|
|
The `exec` driver can run on all supported operating systems but to provide
|
|
|
|
proper isolation the client must be run as root on non-Windows operating systems.
|
|
|
|
Further, to support cgroups, `/sys/fs/cgroups/` must be mounted.
|
2015-09-20 22:42:33 +00:00
|
|
|
|
|
|
|
## Client Attributes
|
|
|
|
|
|
|
|
The `exec` driver will set the following client attributes:
|
|
|
|
|
2015-09-23 01:31:13 +00:00
|
|
|
* `driver.exec` - This will be set to "1", indicating the
|
2015-09-20 22:42:33 +00:00
|
|
|
driver is available.
|
|
|
|
|
|
|
|
## Resource Isolation
|
|
|
|
|
|
|
|
The resource isolation provided varies by the operating system of
|
|
|
|
the client and the configuration.
|
|
|
|
|
2015-09-23 01:31:13 +00:00
|
|
|
On Linux, Nomad will use cgroups, namespaces, and chroot to isolate the
|
|
|
|
resources of a process and as such the Nomad agent must be run as root.
|
2015-09-20 22:31:33 +00:00
|
|
|
|
2015-09-23 01:31:13 +00:00
|
|
|
On Windows, the task driver will just execute the command with no additional
|
|
|
|
resource isolation.
|