Dequeue and Stop Jobs

Often we use the verb "stop" in a loose fashion, but in this section it is important to distinguish "dequeue" from "stop". Dequeuing only impacts scheduled jobs and leaves running jobs unaffected, while "stopping" really means killing jobs that are running.

Icon Action Description
Dequeue Dequeue a scheduled job, ineffective on a running job.
Stop Dequeue a scheduled job and stop a running job. The job is stopped by sending in order the signals TERM HUP INT KILL until the job is no longer running.

Control the Signals to Stop Jobs

Some jobs require specific signals to be delivered in order to be stopped cleanly. If you have such job, you can use the properties STOP_SIGNAL_LIST and STOP_SIGNAL_DELAY to control the stopping sequence.

Below is a fragment of Flow Description Language that you can use to specify such job:
# This works in 2013.09 
J vw ./my_job_that_is_hard_to_stop some arguments
vtk_prop_set $make(transId)   STOP_SIGNAL_LIST "HUP,USR1"
vtk_prop_set $make(transId)   STOP_SIGNAL_DELAY "10s"

# This works in version 2014 and later
J vw ./my_job_that_is_hard_to_stop some arguments

Stop Jobs using the Browser Interface

You can stop the run by going to the Retraces page, finding the request you want, and stopping it by clicking on the Dequeue icon.

Stopping a run does not stop the jobs that are currently running on the taskers. Instead, it simply stops sending any more jobs to the taskers.

You can find all the /set/create?name=running&rule=isjob+STATUS==RETRACING and then selectively stop them by going to each job page, or you can go to the Tasker page and then stop the jobs running on each individual tasker.

From the Projects page, you can perform global operations that affect the whole project:
  • stopping all retracing requests with URL /retraces/stopall
  • stopping all running jobs with URL /taskers/killjobs

Stop Jobs using the GUI

You can stop a run by clicking on Trace > Stop and then choosing the run. You can stop jobs and taskers from the Tasker Monitor window, by right-clicking on the tasker. You can stop a job by right-clicking on the job in the Set Viewer and select Stop from the popup.

Stop Jobs using the CLI

The main command to stop jobs is vovstop.

vovstop: Usage Message
     Stop a list of objects.  The jobs are normally descheduled,
     but if the -f (-force) option is used, then also running jobs
     are stopped.
     % vovstop [options]
     % vovstop [options] objectId ...
     % vovstop [options] setName ...
      Most options can be abbreviated to one character.
     -help               -- Print this message.
     -q                  -- Quiet.
     -s                  -- Quiet (same as -q).
     -silent             -- Quiet (same as -q).
     -v                  -- Increase verbosity.
     -f                  -- Stop running jobs also, same as -force
     -force              -- Stop running jobs also, same as -f
     -running            -- Stop running jobs ONLY, do not dequeue jobs
     -dir      <dirname> -- Stop jobs in a directory.
     -subdirs  <dirname> -- Stop jobs in a directory and all subdirs.
     -downcone           -- Stop also all jobs in the downcone
                            of the specified nodes.
     -retraces           -- Stop all current retrace requests.
     -alljobs            -- Stop all jobs.
     -project            -- Stop current project.
     -signals <SIGLIST>  -- Comma separated list of signals to send to the jobs
                            (default sequence is TERM,HUP,INT,KILL )
                            This can be also set with property NC_STOP_SIGNALS
                            or with the environment variables NC_STOP_SIGNALS
                            or VOV_STOP_SIGNALS.
                            Priority: 1. Option -signal
                                      2. job property NC_STOP_SIGNALS,
                                      3. env variable VOV_STOP_SIGNALS,
                                      4. default (can be configured as
                                         defaultStopSignalCascade in policy.tcl)
                            See also:  vovshow -env VOV_STOP_SIGNALS
                                       vovshow -env NC_STOP_SIGNALS
     -sig     <SIGLIST>  -- Same as -signals.
     -exclude <PROCLIST> -- List of processes to exclude from receiving the
     -include <PROCLIST> -- List of processes to receive the signal.
     -delay   <s>        -- Minimum delay between signals (in seconds),
                            between 0 and 20s. Default is 3.
                            This can also be set with the property
                            NC_STOP_SIG_DELAY, or with the environment
                            variables NC_STOP_SIG_DELAY or
                            VOV_STOP_SIGNAL_DELAY. If both NC_STOP_SIG_DELAY
                            and VOV_STOP_SIGNAL_DELAY are present in the
                            environment, the value of NC_STOP_SIG_DELAY will
                            be used.
                            Priority: 1. Option -delay
                                      2. job property NC_STOP_SIG_DELAY
                                      3. env variable VOV_STOP_SIGNAL_DELAY,
                                      4. default
      -why    <REASON>   -- The reason why vovstop is being called. This gets
                            passed to the WHYSTATUS field and property if it
                            causes a status change.
  The 'objectId' argument can refer to a: job, user, retrace, set,
                                          bucket, or file
     % vovstop System:jobs           -- Stop jobs in specified set.
     % vovstop 00023456              -- Stop job by id.
                                        The id refers to a job, set, retrace,
                                        file, bucket, or user.
     % vovstop -dir .                -- Stop jobs in current dir.
     % vovstop -subdirs .            -- Stop jobs in current dir
                                        and all subdirs.
     % vovstop -alljobs
     % vovstop -f -alljobs           -- Stop and kill all jobs
     % vovstop -f -signal HUP,TERM   -- Send SIGHUP and SIGTERM to all jobs
     % vovstop -f -include sleep     -- Stop all "sleep" jobs
     % vovstop -f -exclude sleep,ls  -- Stop all jobs EXCEPT "sleep" and
                                        "ls" jobs
     % vovstop -retraces -why "The reason why all retraces were stopped"