Skip to main content

ReadyCmd

class ReadyCmd()
Wrapper class for ready check commands.

wait_for_port

def wait_for_port(port: int)
Wait for a port to be listening. Uses ss command to check if a port is open and listening. Arguments:
  • port: Port number to wait for
Returns: ReadyCmd that checks for the port Example
from e2b import Template, wait_for_port

template = (
    Template()
    .from_python_image()
    .set_start_cmd('python -m http.server 8000', wait_for_port(8000))
)

wait_for_url

def wait_for_url(url: str, status_code: int = 200)
Wait for a URL to return a specific HTTP status code. Uses curl to make HTTP requests and check the response status. Arguments: Returns: ReadyCmd that checks the URL Example
from e2b import Template, wait_for_url

template = (
    Template()
    .from_node_image()
    .set_start_cmd('npm start', wait_for_url('http://localhost:3000/health'))
)

wait_for_process

def wait_for_process(process_name: str)
Wait for a process with a specific name to be running. Uses pgrep to check if a process exists. Arguments:
  • process_name: Name of the process to wait for
Returns: ReadyCmd that checks for the process Example
from e2b import Template, wait_for_process

template = (
    Template()
    .from_base_image()
    .set_start_cmd('./my-daemon', wait_for_process('my-daemon'))
)

wait_for_file

def wait_for_file(filename: str)
Wait for a file to exist. Uses shell test command to check file existence. Arguments:
  • filename: Path to the file to wait for
Returns: ReadyCmd that checks for the file Example
from e2b import Template, wait_for_file

template = (
    Template()
    .from_base_image()
    .set_start_cmd('./init.sh', wait_for_file('/tmp/ready'))
)

wait_for_timeout

def wait_for_timeout(timeout: int)
Wait for a specified timeout before considering the sandbox ready. Uses sleep command to wait for a fixed duration. Arguments:
  • timeout: Time to wait in milliseconds (minimum: 1000ms / 1 second)
Returns: ReadyCmd that waits for the specified duration Example
from e2b import Template, wait_for_timeout

template = (
    Template()
    .from_node_image()
    .set_start_cmd('npm start', wait_for_timeout(5000))  # Wait 5 seconds
)