Skip to content



punchlinectl : start a punchline


punchlinectl start  --punchline my_punchline.punchline


The punchlinectl command lets you start an individual punchline. I.e. not going through a channelctl command.

Note that punchlinectl is typically used in two different contexts :

  1. Shiva application scheduler uses that command to launch punchline applications. This happens if you define a punchline as part of a Punch channel and make it run in a Shiva cluster.
  2. You can use it from a punch operator terminal to submit a punchline for execution directly. This mode is not a production-typical mode but can be useful to investigate issues on a production platform. It very useful on development platform or on the punch standalone.

The punchlinectl command if fully documented inline and provides rich auto-completion facilities. This page contains only the very basic usage.


Run a punchline with the default storm execution engine:

punchlinectl mypunchline.hjson
Run a punchline with a tenant :
punchlinectl --tenant mytenant start --punchline mypunchline.hjson

Run a spark punchline:

punchlinectl mypunchline.hjson --runtime spark

Run a punchline with custom Xmx Xms options :

punchlinectl -t mytenant --childopts "-Xmx2g -Xms1g" start -p mypunchline.yaml 

Get the help menu:

punchlinectl --help


punchlinectl uses the library located :

  • $PUNCHPLATFORM_INSTALL_DIR/lib/punch-command-app-*with-dependencies.jar


The logging verbosity of punchlinectl is controlled by the following two files:

  • $PUNCHPLATFORM_LOG4J_CONF_DIR/log4j2-stdout.xml

In the context of shiva execution, i.e. if punchlinectl is launched through shiva on some shiva worker server, the PUNCHPLATFORM_LOG4J_CONF_DIR points on a different log4j directory

Note that these loggers use the stdout appenders. This is on purpose because punchlinectl is designed to run with a stdout/stderr strategy. Its logs are either prompted to the user terminal, or are handled automatically by shiva, again through the stdout/stderr unix pipes.


punchlinectl is executed in three different environment : in the context of the operator terminal environment when launched manually, in the context of the shiva application scheduler when upcalled from a channel command or in the context of gateway application


channelctl environment