vtk_job_control

From Tcl, you can control both the taskers and the jobs running on the remote taskers with the procedure vtk_job_control.

This is the main procedure to send controlling signals and modifications to jobs running on remote taskers. The argument taskersId can either be a legal VovId, "ALL", or the number 0 which is equivalent to "ALL". The argument action can be one of STOP KILL DEQUEUE SUSPEND RESUME SIGUSR1 SIGUSR2 SIGTSTP CHECK EXT MODIFY
  • If jobId is 0, then all jobs on the specified tasker are affected.
  • If jobId is the string "TASKER", then the tasker is stopped gracefully.
  • If jobId is the string "TASKER/FORCE", then the tasker is stopped with force. Taskers can only be stopped.
Table 1. Options
Option Action EXT Action MODIFY
opt1 signalName fieldName
opt2 procNameIncludeRx newValue
opt3 procNameExcludeRx unused
Note:
  • STOP and KILL are equivalent
  • SUSPEND may use colon delimiters to specify which signals to use and include/exclude lists, formatted as:

    SUSPEND:[comma-delimited signal list]:[comma-delimited include list]:[comma-delimited exclude list] . See Examples.

  • STOP may use colon delimiters to specify which signals to use, include/exclude lists and delay in seconds between sending signals, formatted as:

    STOP:[comma-delimited signal list]:[comma-delimited include list]:[comma-delimited exclude list]:]delay between signals in seconds] . See Examples.

  • The include and exclude lists used by STOP and SUSPEND are mutually exclusive; if both are specified the exclude list will apply.
  • DEQUEUE does not reach the tasker and is processed by vovserver
  • CHECK forces the taskers to scan the process table and gather information about the processes and send it to the vovserver
  • EXT uses the script vovjobctrl to execute the job control. Check the documentation about vovjobctrl for more information about this type of job control.

Examples of vtk_job_control

# Stop all taskers
vtk_job_control ALL STOP TASKER

# Stop tasker 000123456 with force
vtk_job_control 000123456 STOP TASKER/FORCE

# Stop all jobs on tasker 000123456
vtk_job_control 000123456 STOP 0

# Stop job 223344 on tasker 000123456
vtk_job_control 000123456 STOP 223344

# Stop job 223344 running on any tasker
vtk_job_control ALL STOP 223344

Suspend all sleep jobs using SIGINT followed by SIGHUP on tasker 12345:
vtk_job_control 12345 SUSPEND:INT,HUP:sleep

Kill all jobs except sleep jobs using the default signal cascade with 2 seconds between signals on tasker 23456:
vtk_job_control 23456 STOP:::sleep:2