Skip to content

User Commands


This chapter list the operator commands you need to start and stop your channels.

The main command you will use is the channelctl command line utility. It provides:

  • online help
  • autocompletion of configured and running channels and jobs
  • support for all administration commands : start, stop, status etc..

The simplest way to understand it is simply to launch it specifying your tenant :

channelctl --tenant mytenant

You can set a default tenant with a environment variable $PUNCHPLATFORM_TENANT and then launch the command without specify it :



The interactive mode makes it extra easy to manage your channels. In the rest of this guide we will only list the equivalent non-interactive variants. That is, whenever we document (say):

channelctl --tenant mytenant start --channel apache_httpd

it is equivalent to

channelctl:mytenant > start --channel apache_httpd

using the interactive mode.

Channel Commands


To start a channel:

channelctl --tenant mytenant start --channel apache_httpd

You also can start all channels at once:

channelctl --tenant mytenant start --channel apache_httpd


To stop a channel:

channelctl --tenant mytenant stop --channel apache_httpd

or all of them:

channelctl --tenant mytenant stop

It is possible to force a channel to stop if the upper command didn't work :

channelctl --tenant mytenant stop --channel apache_httpd --force


To query a channel status:

channelctl --tenant mytenant status --channel apache_httpd


channelctl --tenant mytenant status

Application Commands

The channelctl command provides you with the capability to start stop or status only a dedicated application. Here is an example:

channelctl --tenant mytenant start --job apache_httpd/main/single_topology.json

Refer to the channelctl online help for details.

Developer Commands

When designing punchlines, you need a way to quickly run them without the burden to pass through a channel.

The punch provides you with the punchlinectl command to launch the many variant of punchlines. A punchline can indeed be a stream or batch application you run in various runtime environments.

By default the punchlinectl tool detects the required runtime. Storm compatible punchlines are executed in the punch lightweight storm compatible runtime. Spark punchline are executed as a client or foreground mode spark application.

You can control which runtime and which deployment mode you need using the punchlinectl arguments.

Once satisfied, simply include your new punchline in a channel, you will then be able to start it using the regular channelctl command.

Designing Channels with Templates

Writing channel and punchline configuration files is rendered simpler using templating. The punch provides you with a tool to generate you complete channel configuration files so as to greatly simplify the settings of the various parameters and options.

By quickly switching from one template set to another you can easily test your channels with or without Kafka for instance. It is handy and often used to generate simpler channels to focus on parsing issues.