> ## Documentation Index
> Fetch the complete documentation index at: https://ppio.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 自动暂停和恢复

> 了解 PPIO Agent 沙箱自动暂停和恢复的归档使用方式，查阅该版本的状态转换与相关配置，为维护现有应用提供参考。

当您的沙箱实例当前不需要再使用，但后续需要随时能恢复使用时，您可以参考 [文档](/docs/sandbox/archive/sandbox-persistence) 来主动暂停和恢复沙箱实例。

在某些情况下，您希望沙箱实例在 [超时](/docs/sandbox/archive/sandbox) 后自动暂停，并且在您尝试操作沙箱实例（执行命令、运行代码、操作文件等）时，如果该沙箱实例已被暂停，则自动恢复该沙箱实例。此时，您可以使用 **“自动暂停和恢复”** 功能。

## 启用自动暂停功能

您可以在创建沙箱实例时设置 `auto_pause` 参数为`true` 来启用自动暂停功能，沙箱实例超时后会自动暂停，后续可被恢复。

> [!WARNING]
>
> 注意：恢复后的沙箱实例仍会开启自动暂停功能，超时后会再次自动暂停。

```js JavaScript & TypeScript icon="js" theme={null}
import { Sandbox } from 'ppio-sandbox/code-interpreter';

const sandbox = await Sandbox.betaCreate(
    {
        timeoutMs: 5_000,
        autoPause: true
    },
);
console.log('Sandbox created', sandbox.sandboxId)

console.log('Waiting for 10 seconds...')
await new Promise(resolve => setTimeout(resolve, 10000));

const resumedSandbox = await Sandbox.connect(sandbox.sandboxId)
console.log('Sandbox resumed', resumedSandbox.sandboxId)

await sandbox.kill()
```

```python Python icon="python" theme={null}
from ppio_sandbox.core import Sandbox
import time

sandbox = Sandbox.create(
    timeout=5,
    auto_pause=True,
)
print('Sandbox created', sandbox.sandbox_id)

print('Waiting for 10 seconds...')
time.sleep(10)

resumed_sandbox = Sandbox.connect(sandbox.sandbox_id)
print('Sandbox resumed', resumed_sandbox.sandbox_id)

sandbox.kill()
```

## 启用自动恢复功能

您可以在创建沙箱实例时设置 `metadata` 中的 `auto_resume` 键值为 `true` 启用自动恢复功能。启用后，当您尝试操作已暂停的沙箱（如执行命令、运行代码、文件操作等）时，沙箱会自动恢复。

> [!WARNING]
>
> 注意：恢复后的沙箱默认超时时间为 5 分钟，可通过  `setTimeout` 或 `set_timeout` 方法调整沙箱的超时时间。

```js JavaScript & TypeScript icon="js" theme={null}
import { Sandbox } from 'ppio-sandbox/code-interpreter';

const sandbox = await Sandbox.create(
    {
        metadata:{"auto_resume": "true"}
    }
);
console.log('Sandbox created', sandbox.sandboxId)

await sandbox.betaPause()
console.log('Sandbox paused', sandbox.sandboxId)

const result = await sandbox.commands.run('ls -al')
console.log('Command result', result)

await sandbox.kill()
```

```python Python icon="python" theme={null}
from ppio_sandbox.core import Sandbox

sandbox = Sandbox.create(
    metadata={
        "auto_resume": "true",
    }
)
print('Sandbox created', sandbox.sandbox_id)

sandbox.beta_pause()
print('Sandbox paused', sandbox.sandbox_id)

result = sandbox.commands.run('ls -al')
print('Command result', result)

sandbox.kill()
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.