Skip to content



planctl : start or stop you plans


 planctl start --plan myplan.hjson --template punchline.template


The planctl command is used internally by the shiva application scheduler to start or stop plans. Plans are applications that are scheduled periodically, refer to the punch reference guide for details.

planctl is also available as a command line tool so as to let you run a plan in foreground from a terminal . This is mainly useful on a standalone for developping your plans. It is alse available from the punch operator terminals on production platforms.

This command works in two ways. To start an interactive shell, simply launch

planctl --tenant <tenant_name>

Where <tenant_name> is a tenant name. From there, follow the documented commands. Use the TAB character to get auto-completion.

Alternatively you can execute commands in non interactive mode using the following syntax:

planctl start --plan myplan.hjson --template punchline.template

Plans are resilient and internally save so-called cursors. Cursors keep track of the progress of the executed application. Should a server crash, the plan will resume from another one, and the application will be scheduled again from the last saved cursor. Think of a cursor much the same way as a kafka offset. Instead of keep track of an offset in a queue, plans keep track of the last time of a succesful application execution.


  • start

    • Restart a plan.
  • reset_cursor

    • Use an inline punchlet code, Start channels and jobs.
  • list_cursor

    • Stop channels or jobs.


Here are some self explanatory examples. To list the current cursors:

planctl list-cursor --plan-id my_plan \
                   --es_cluster es_search \
                   --index-name-pattern platform-plan-cursor

To manually reset a cursor:

planctl reset-cursor --plan-id my_plan \
                   --es_cluster es_search \
                   --index-name-pattern platform-plan-cursor \
                   --restart-date XXXX-YY-ZZT16:28:14.702Z


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

  • $PUNCHPLATFORM_LOG4J_CONF_DIR/log4j2-punchline.xml


planctl is only executed in the context of the operator terminal environment.


punchlinectl channeltcl environment