Ready Command

The ready command allows you to specify a command that will determine template sandbox readiness before a snapshot is created. It is executed in an infinite loop until it returns a successful exit code 0. This way you can control how long should we wait for the start command or any system state.

How to add ready command

When you are building a sandbox template you can specify the ready command by using the --ready-cmd option:

e2b template build --ready-cmd "<your-ready-command>"

Sandbox template config

You can specify the ready command inside the e2b.toml in the same directory where you run e2b template build.

e2b.toml

# This is a config for E2B sandbox template
template_id = "1wdqsf9le9gk21ztb4mo"
dockerfile = "e2b.Dockerfile"
template_name = "my-agent-sandbox"
ready_cmd = "<your-ready-command>"  

Default values

By default, the ready command is set to sleep 0, which means the sandbox template will be ready immediatelly. If the start command is defined, the default is set to sleep 20, which means that the template sandbox will wait for 20 seconds before taking the snapshot.

Examples

Here are some examples of the ready command you can use.

Wait for URL to return 200 status code

ready_cmd = 'curl -s -o /dev/null -w "%{http_code}" http://localhost:3000 | grep -q "200"'

Wait for a specific process to start

ready_cmd = 'pgrep my-process-name > /dev/null'

Wait for a file to exist

ready_cmd = '[ -f /tmp/ready.flag ]'