# InitCommandOptions

Options for InitCommand.

- Source: [`aws-ec2/lib/cfn-init-elements.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0/packages/aws-cdk-lib/aws-ec2/lib/cfn-init-elements.ts#L110)

## Example

```ts
const handle = new ec2.InitServiceRestartHandle();
ec2.CloudFormationInit.fromElements(
  ec2.InitCommand.shellCommand('/usr/bin/custom-nginx-install.sh', { serviceRestartHandles: [handle] }),
  ec2.InitService.enable('nginx', { serviceRestartHandle: handle }),
);
```

## Properties

- `cwd`: string — The working directory.

  **Default:** Use default working directory

- `env`: { [key: string]: string } — Sets environment variables for the command.

  **Default:** Use current environment

  This property overwrites, rather than appends, the existing environment.

- `ignoreErrors`: boolean = false — Continue running if this command fails.

- `key`: string — Identifier key for this command.

  **Default:** Automatically generated based on index

  Commands are executed in lexicographical order of their key names.

- `serviceRestartHandles`: [InitServiceRestartHandle](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.InitServiceRestartHandle.html)[] — Restart the given service(s) after this command has run.

  **Default:** Do not restart any service

- `testCmd`: string — Command to determine whether this command should be run.

  **Default:** Always run the command

  If the test passes (exits with error code of 0), the command is run.

- `waitAfterCompletion`: [InitCommandWaitDuration](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.InitCommandWaitDuration.html) — The duration to wait after a command has finished in case the command causes a reboot.

  **Default:** 60 seconds

  Set this value to `InitCommandWaitDuration.none()` if you do not want to wait for every command;
  `InitCommandWaitDuration.forever()` directs cfn-init to exit and resume only after the reboot is complete.

  For Windows systems only.
