---
title: "stop(completionHandler:)"
framework: virtualization
role: symbol
role_heading: Instance Method
path: "virtualization/vzvirtualmachine/stop(completionhandler:)"
---

# stop(completionHandler:)

Stops a VM that’s in either a running or paused state.

## Declaration

```swift
func stop(completionHandler: @escaping ((any Error)?) -> Void)
```

```swift
func stop() async throws
```

## Parameters

- `completionHandler`: A block called after the VM stopped successfully, or on error. The error parameter passed to the block is nil if the stop was successful.

## Discussion

Discussion warning: This is a destructive operation. It stops the VM without giving the guest a chance to stop cleanly. To determine if a VM is in a state that allows you to stop it, check the VM’s canStop or canRequestStop properties.

## See Also

### Starting and stopping the VM

- [start(completionHandler:)](virtualization/vzvirtualmachine/start(completionhandler:).md)
- [start()](virtualization/vzvirtualmachine/start().md)
- [start(options:completionHandler:)](virtualization/vzvirtualmachine/start(options:completionhandler:).md)
- [pause(completionHandler:)](virtualization/vzvirtualmachine/pause(completionhandler:).md)
- [requestStop()](virtualization/vzvirtualmachine/requeststop().md)
- [resume(completionHandler:)](virtualization/vzvirtualmachine/resume(completionhandler:).md)
- [pause()](virtualization/vzvirtualmachine/pause().md)
- [resume()](virtualization/vzvirtualmachine/resume().md)
- [VZVirtualMachineStartOptions](virtualization/vzvirtualmachinestartoptions.md)
