diff --git a/client/driver/exec.go b/client/driver/exec.go index a96f3121d..7899f004d 100644 --- a/client/driver/exec.go +++ b/client/driver/exec.go @@ -52,15 +52,16 @@ func (d *ExecDriver) Start(ctx *ExecContext, task *structs.Task) (DriverHandle, // Setup the command cmd := executor.Command(command, args...) - err := cmd.Limit(task.Resources) - if err != nil { - return nil, fmt.Errorf("failed to constrain resources: %s", err) - } - err = cmd.Start() + err := cmd.Start() if err != nil { return nil, fmt.Errorf("failed to start command: %v", err) } + err = cmd.Limit(task.Resources) + if err != nil { + return nil, fmt.Errorf("failed to constrain resources: %s", err) + } + // Return a driver handle h := &execHandle{ cmd: cmd, diff --git a/client/executor/exec_linux.go b/client/executor/exec_linux.go index 322ce0955..a8481796e 100644 --- a/client/executor/exec_linux.go +++ b/client/executor/exec_linux.go @@ -4,6 +4,7 @@ import ( "fmt" "os" "os/user" + "strconv" "syscall" "github.com/hashicorp/go-multierror"