Execute Shell Command

Execute Shell Command executes system command or a shell script.

This task is used is used in Chapter 22, Scheduling, Chapter 24, Listeners, and Chapter 21, Manual Task Execution.

Table 20.3. Attributes of "Execute shell command" task

Task type"Execute shell command"
Start onNode IDs to process the task

This attribute is accessible only in the cluster environment. If there are nodes specified, the task will be processed on the first node which is online and ready.

Shell scriptCommand line for execution of external process.
Working directory

Working directory for process.

If not set, working directory of application server process is used.

TimeoutTimeout in milliseconds. After period of time specified by this number, external process is terminated and all results are logged.

Web GUI - shell command

Figure 20.2. Web GUI - shell command


Execute Shell Command Parameters

Some parameters are available only in particular context: scheduling, event listeners, or manual task execution.

Table 20.4. Parameters of "Execute shell command" task

eventEvent that has triggered the task
nowCurrent date-time
taskThe triggered task
user Object representing user who executed the graph/jobflow. It contains sub-properties that are accessible using dot notation (i.e. ${user.email})
  • user.email
  • user.username
  • user.firstName
  • user.lastName
  • user.groups (list of values)

Table 20.5. Parameters of "Execute shell command" task - available in scheduling

schedule Object representing the schedule that triggered this task. It contains sub-properties that are accessible using dot notation (i.e. ${schedule.description})
  • schedule.description
  • schedule.startTime
  • schedule.endTime
  • schedule.lastEvent
  • schedule.nextEvent
  • schedule.fireMisfired
EVENT_USERNAME Username of the user who caused the event.
EVENT_USER_IDNumeric ID of the user who caused the event.
EVENT_SCHEDULE_DESCRIPTIONDescription of the schedule.
EVENT_SCHEDULE_EVENT_TYPEType of the schedule - SCHEDULE_ONETIME or SCHEDULE_PERIODIC.
EVENT_SCHEDULE_IDNumeric ID of the schedule
EVENT_SCHEDULE_LAST_EVENTDate-time of the latest schedule triggering (in java.util.Date.toString() format).

Table 20.6. Parameters of "Execute shell command" task - available in listeners

run Object representing single graph/jobflow execution. It contains sub-properties that are accessible using dot notation (i.e. ${run.jobFile}).
  • run.jobFile
  • run.status
  • run.startTime
  • run.stopTime
  • run.errNode
  • run.errMessage
  • run.errException
sandbox Object representing a sandbox containing the executed graph/jobflow. It contains sub-properties that are accessible using dot notation (i.e. ${sandbox.name})
  • sandbox.name
  • sandbox.code
  • sandbox.rootPath
tracking Object represeting status of components in a graph execution. It contains sub-properties that are accessible using Velocity syntax for loops and conditions.
EVENT_USERNAME Username of the user who caused the event.
EVENT_USER_IDNumeric ID of the user who caused the event.
EVENT_RUN_SANDBOX Code of the sandbox containing the graph/jobflow.
EVENT_RUN_JOB_FILE Sandbox-relative path to the graph/jobflow file.
EVENT_RUN_RESULTCurrent status of the graph/jobflow execution
  • N_A
  • READY
  • RUNNING
  • WAITING
  • FINISHED_OK
  • ERROR
  • ABORTED
  • TIMEOUT
  • UNKNOWN
EVENT_RUN_IDNumeric ID of the run record representing graph/jobflow execution
EVENT_TIMEOUT Specified timeout (in milliseconds) for the TIMEOUT event to occur.
EVENT_JOB_EVENT_TYPEGraph event that triggered the task
  • GRAPH_STARTED
  • GRAPH_PHASE_FINISHED
  • GRAPH_FINISHED
  • GRAPH_ERROR
  • GRAPH_ABORTED
  • GRAPH_TIMEOUT
  • GRAPH_STATUS_UNKNOWN

Table 20.7. Parameters of "Execute shell command" task - available in manual task execution

parametersTask parameters - container for String-String key-value pairs passed to this task.