One-off Commands

Convox allows you to execute one-off commands on your App. This can be used for starting a shell for debugging purposes or running administrative commands such as database migrations.

Spawning a new Process

Using convox run will start a new Process of the specified Service on your current Rack and run your command inside the new Process.

Running Interactively

Running an interactive process will start a Process and connect your local terminal so that you can run commands and see output:

    $ convox run web bash
    root@web#

Running Detached

Running detached is useful for long-running tasks that you don’t want to be disrupted:

    $ convox run web bin/cleanup-database --detach
    Running detached process... OK, web-s43xf

The output of detached Processes will appear in the application logs

Running a command in an existing Process

Using convox exec will run a command inside an existing Process. This can be useful for debugging a running Process.

    $ convox ps
    ID                    SERVICE  STATUS   RELEASE     STARTED         COMMAND
    web-6844dc6f45-9wdss  web      running  RABCDEFGHI  14 minutes ago  bin/web
    web-6844dc6f45-mj9mp  web      running  RABCDEFGHI  14 minutes ago  bin/web

    $ convox exec web-6844dc6f45-9wdss bash
    root@web#

You can also use a Service name with convox exec to select a random Process of that Service.

    $ convox exec web bash
    root@web#