Skip to main content

Command Execution

Morph Cloud provides robust capabilities for executing commands on your instances, whether you need to run a single command or a sequence of commands.

Execute Commands on Instance

from morphcloud.api import MorphCloudClient

client = MorphCloudClient()

instance_id = "morphvm_abc123" # Replace with a valid instance ID
instance = client.instances.get(instance_id=instance_id)

result = instance.exec(command="uname -a")

print(f"Exit Code: {result.exit_code}")
print(f"Stdout:\n{result.stdout}")
print(f"Stderr:\n{result.stderr}")

Execute Multiple Commands

You can also run a sequence of commands in a single execution.

from morphcloud.api import MorphCloudClient

client = MorphCloudClient()

instance_id = "morphvm_abc123" # Replace with a valid instance ID
instance = client.instances.get(instance_id=instance_id)

commands = """
apt-get update
apt-get install -y nginx
systemctl enable nginx
systemctl start nginx
"""

result = instance.exec(command=commands)

print(f"Exit Code: {result.exit_code}")
print(f"Stdout:\n{result.stdout}")
print(f"Stderr:\n{result.stderr}")

Handling Execution Results

Command execution results contain stdout, stderr, and an exit code that you can use to determine success or failure:

from morphcloud.api import MorphCloudClient

client = MorphCloudClient()

instance_id = "morphvm_abc123" # Replace with a valid instance ID
instance = client.instances.get(instance_id=instance_id)

result = instance.exec(command="ls /nonexistent")

if result.exit_code == 0:
print("Command succeeded")
print(f"Output: {result.stdout}")
else:
print("Command failed")
print(f"Error: {result.stderr}")
print(f"Exit code: {result.exit_code}")