RUSH RENDER QUEUE - COMMAND LINE OPTIONS
(C) Copyright 1995,2000 Greg Ercolano. All rights reserved.
V 102.31m 02/02/02
Strikeout text indicates features not yet implemented


Rush Command Line


Rush Command Line Arguments
-ac
-af
-an
-autodump
-checkconf
-checkhosts
-command
-cont
-cp
-criteria
-dcatlog
-deltaskfu
-dexit
-dexitnow
-dependon
-dlog
-done
-donecommand
-donemail
-down
-dump
-end
-fail
-fu
-getoff
-hold
-imgcommand
-jobnotes
-lac
-lacf
-lah
-lahf
-laj
-lajf
-lc
-lcf
-lf
-lff
-lfi
-lhg
-lhc
-lj
-ljf
-licpause
-licpausesecs
-log
-logdir
-logflags
-maxtime
-nice
-notes
-offline
-online
-pause
-ping
-priority
-push
-que
-ram
-ramlist
-rc
-reserve
-reorder
-rf
-rn
-rotate
-status
-submit
-tasklist
-title
-trs
-try
-tss
-uping
-waitfor
    
Add Cpus, adds to job cpus to use for rendering
Add Frames, adds new frames to a job
Add Nevercpus, adds to job names of cpus to never use
Automatically dump job on completion (done|donefail|-)
Checks a rush.conf file for errors
Checks a rush hosts file for errors
Sets job's command to run each frame
Continue a paused job
Change Priority for job's existing cpus
Sets criteria qualifiers for the job
Views the remote daemon's log file
Deletes a task from a job or from a cpu server
Tells a daemon to exit immediately via TCP
Tells a daemon to exit immediately via UDP
Makes a job dependent on frames in other job(s)
Enables certain daemon debug logging flags
Changes frames into the Done state
Sets command to run when job is done
Sets who to email when job is done
Tells rush a machine is down. 
Dumps a job, kills running frames
Ends a job, lets running frames complete
Changes frames into the Fail state
Allows you to change other people's jobs
Kills renders, offlines the cpus
Changes frames into the Hold state
Sets the command irush uses to display images
Changes the notes for the job
List All Cpus, lists status of all cpus on the net
List All Cpus Full, full report
List All Hosts, showing #cpus, ram, criteria, hostgroups
List All Hosts Full, full report
List All Jobs, all jobs on the network
List All Jobs Full, full report
List Cpus, all cpus requested by a job
List Cpus Full, full report
List Frames, shows the job's frame list
List Frames Full, full report
List Frame Info, a short report of render statistics
List Host Groups (new in 102.31)
List Host Criteria (new in 102.31)
List Jobs. Lists jobs on local or remote host(s)
List Jobs Full, full report
Pause job for short period, due to license error
Set pause time for -licpause
Shows the log file for frame(s) in job(s)
Sets the directory log files are written
Changes the job's logging flags (keepall|keeplast|-)
Sets maximum time for rendering frames
Set job's unix nice(1) value
Changes notes field for specified frame(s)
Offlines the local or remote host from rendering
Onlines the local or remote host for rendering
Pauses the job
Pings the local or remote rush daemon(s) using TCP
Changes the default priority value
Push rush administration files out to network
Requeues a frame
Changes the job's ram use value
Show the ram use of all processors on remote host
Removes a cpu from the current job
Reserves cpus on local or remote machines
Reorders the frames in the frame list
Removes frames from the frame list
Removes 'nevercpus'
Rotates the local or remote daemon's log file
Status of jobs and cpus on local or remote hosts
Submits a job
Shows the list of scheduled tasks on local or remote host
Changes the title of the job
Shows the Template Render Script
Changes the Try count for frame(s)
Shows the Template Submit Script
Pings the local or remote rush daemon(s) using UDP
Make a job Wait For other jobs
    

rush -ac
rush -ac <cpuspec..> [jobid..]

Add Cpus.

Adds cpus to the running job. Examples:

% rush -ac tahoe@300 # Add one cpu on tahoe at 300 priority
% rush -ac tahoe=2@300 +farm=10@100k     # Add two tahoe cpus,
# 10 cpus in +farm hostgroup
% rush -ac +any=10@10 # Add any 10 available cpus

See the Cpus submit command for more info. To remove cpus, see 'rush -rc'.

rush -af
rush -af <framerange..> [jobid..]

Add Frames.

Adds frames to the current framelist. Adding frames that already exist yields an error. Example:

% rush -af 10-15 # Add 10 thru 15 to the current job
% rush -af 20-25=Hold # Add 20 thru 25 in Hold state
% rush -af 30-35:"To be done" # Add 30 thru 35, Notes "To be done"
% rush -af 40-45=Done:"To be done"    # Add 40 thru 45 as Done with Notes

See Frames submit command for more info.

rush -an
rush -an <hostname|+hostgroup..> [jobid..]

Add Nevercpus.

Prevents the job from rendering on the specified hosts. Example:

% rush -an tahoe +farm     # Add nevercpus tahoe and
# hostgroup +farm to the current job

See Nevercpus submit command for more info.

rush -autodump
rush -autodump <off|done|donefail> [jobid..]

Automatic Dump.

Configures job to automatically dump when there are no more frames to render.

See AutoDump submit command for more info.

rush -checkconf
rush -checkconf <filename>

Check for errors in rush.conf file..

(Administrative) Checks a rush.conf file for errors. Returns an exit code indicating success or failure; 0=ok, 1=error(s) found. Example:

#!/bin/csh -f

###
### Script to edit the rush.conf file, and rdist it out
###

set TMPFILE=/usr/tmp/rush.conf.$$
cp /usr/local/rush/etc/rush.conf $TMPFILE
vi $TMPFILE

rush -checkconf $TMPFILE
if ( $? ) then
    echo Config file has errors
    set err=1
else
    foreach i ( tahoe superior erie )
        echo --- $i
	rdist -c $TMPFILE ${i}:/usr/local/rush/etc/rush.conf
    end
    set err=0
endif
rm -f $TMPFILE
exit $err
	

rush -checkhosts
rush -checkhosts <filename>

Checks a hosts file for errors.

(Administrative) Returns an exit code indicating success or failure; 0=ok, 1=error(s) found.

rush -command
rush -command 'cmd [args..]' [jobid..]
rush -command [jobid..] < file

Set Render Command.

Changes the command that is executed every frame, normally set in your Submit Script by the Command. Example:

(New in rush 102.31m and up)
If 'cmd [args]' are not supplied, the command will be read from stdin. This is useful to avoid shell quoting issues. If multiple lines are specified, they will be joined into one single line.

% rush -command '/bin/sleep 30' # change command to run 'sleep 30' % rush -command < file
% rush -command '/job/run/myrender' tahoe.21  tahoe.22   # change command for two jobs # set the command from stdin

Note that a full path to the command is normally required. Spaces are used to separate arguments, but the entire command and arguments must be quoted.

See also the submit script docs on Command for more info.

The command is usually a simple Render Script. Here are some example 3rd Party Render Scripts.

rush -cont
rush -cont [jobid..]

Continue Paused Job.

Continues a job that was paused with rush -pause.

rush -cp
rush -cp [jobid..] <.JobTid [..]> <@pri>
rush -cp [jobid..] <cpuspec [..]> <=#cpus>

Change Priority.

Changes priority for the cpus specified by 'JobTid' to the new priority '<@pri>'. JobTid values (Job Task IDs) can be found in the 'rush -lc' report.

Priorities can be changed while cpus are busy. If a busy cpu's priority is changed, the busy task(s) inherit the new priority, which is used for all subsequent scheduling and priority battles.

Example:


% rush -lc
CPUSPEC[HOST]        STATE       FRM  PID     JOBTID  PRI   ELAPSED 
+any=10@100[vaio]    Busy        0007 1030    131     100   00:01:45 
+any=10@100[vaio]    Busy        0008 1031    132     100   00:01:45 
+any=10@100[tahoe]   Busy        0004 19829   133     100   00:00:05 
+any=10@100[tahoe]   Busy        0005 19831   134     100   00:00:05 

% rush -cp .131 .132 @350k
vaio.21 +any=10@100: priority was 100, now 350k
vaio.21 +any=10@100: priority was 100, now 350k

% rush -lc
CPUSPEC[HOST]        STATE       FRM  PID     JOBTID  PRI   ELAPSED
+any=10@100[vaio]    Busy        0007 1030    131     350k  00:02:03 
+any=10@100[vaio]    Busy        0008 1031    132     350k  00:02:03 
+any=10@100[tahoe]   Busy        0004 19829   133     100   00:00:28 
+any=10@100[tahoe]   Busy        0005 19831   134     100   00:00:28 
        

Caveats:

  • Currently the CPUSPEC column does not reflect the change, though the effective priority (shown in the PRI column) does.

  • GUIs (like IRUSH) make best use of this option, since they hide the mundane task of visually indexing JOBTIDs from the -lc report, and inserting dot prefixes on the rush command line.

(New in rush 102.31g and up)
'rush -cp' can be used to change the number of cpus in a cpuspec. For instance, 'rush -cp +any=50@100 =40' will change '+any=50@100' to '+any=40@100' without killing any running frames.

Example:


% setenv RUSH_JOBID vaio.36
% rush -lc
CPUSPEC[HOST]          STATE       FRM  PID     JOBTID  PRI   ELAPSED  NOTES
+any=10@500[tahoe]     Busy        0012 11443   343     500   00:00:10 
+any=10@500[tahoe]     Busy        0013 11445   344     500   00:00:10 
+any=10@500[nt-1]      Busy        0008 293     345     500   00:00:11 
+any=10@500[nt-1]      Busy        0009 246     346     500   00:00:11 
+any=10@500[vaio]      Busy        0015 11489   347     500   00:00:07 
+any=10@500[vaio]      Busy        0014 11484   348     500   00:00:09 
+any=10@500[imac]      Busy        0011 22530   351     500   00:00:11 
+any=10@500[imac]      Busy        0010 22528   352     500   00:00:11 

% rush -cp +any=10@500 =3@500
vaio.36 +any=3@500: priority was +any=10@500, now +any=3@500

	 NOW SET TO 3 CPUS, BUT RENDERS STILL RUNNING, NOTHING IS KILLED..

% rush -lc
CPUSPEC[HOST]          STATE       FRM  PID     JOBTID  PRI   ELAPSED  NOTES
+any=3@500[tahoe]      Busy        0021 11453   343     500   00:00:41 
+any=3@500[tahoe]      Busy        0020 11451   344     500   00:00:41 
+any=3@500[nt-1]       Busy        0016 280     345     500   00:00:43 
+any=3@500[nt-1]       Busy        0017 71      346     500   00:00:43 
+any=3@500[vaio]       Busy        0022 11499   347     500   00:00:39 
+any=3@500[vaio]       Busy        0023 11501   348     500   00:00:39 
+any=3@500[imac]       Busy        0018 22534   351     500   00:00:42 
+any=3@500[imac]       Busy        0019 22536   352     500   00:00:42 

	 TIME PASSES, RENDERS START FINISHING, 3 CPU LIMIT TAKES EFFECT
% rush -lc
CPUSPEC[HOST]          STATE       FRM  PID     JOBTID  PRI   ELAPSED  NOTES
+any=3@500[tahoe]      Busy        0026 11459   343     500   00:00:04 
+any=3@500[tahoe]      JobPass     -    -       344     500   00:01:01 Cpu max (3/3 busy)
+any=3@500[nt-1]       Idle        -    -       345     500   00:01:01 Cpu max (4/3 busy)
+any=3@500[nt-1]       Idle        -    -       346     500   00:01:01 Cpu max (4/3 busy)
+any=3@500[vaio]       JobPass     -    -       347     500   00:01:01 Cpu max (3/3 busy)
+any=3@500[vaio]       JobPass     -    -       348     500   00:01:01 Cpu max (3/3 busy)
+any=3@500[imac]       Busy        0024 22540   351     500   00:00:07 
+any=3@500[imac]       Busy        0025 22542   352     500   00:00:05 

        

rush -criteria
rush -criteria 'criteria strings' [jobid..]

Job Criteria.

Sets the criteria string for the job. Use '-' to specify no criteria.

See Criteria submit command for more info on how criteria is specified.

rush -dcatlog
rush -dcatlog [host..]

Daemon cat(1) Log File.

View the rushd.log daemon on the local [remote] host.

  • rush -dcatlog prints the current rushd.log (usually today's)
  • rush -dcatoldlog prints the last rotated log (usually yesterday's).

Caveat: for reasons strange and unusual, all daemon 'catlog' output has a '>' prepended to each line.

rush -deltaskfu
rush -deltaskfu [..]

Delete Task, Force Unconditionally

(Administrative) Deletes a task from a cpu server. Only root and the rush adminuser can use this command.

This command has two forms; in one case it takes two arguments where a task (or cpu) is forcibly removed from the job's cpu report, and in the second case a task (or cpu reservation) is forcibly removed from the cpu server's tasklist (i.e. 'rush -tasklist'). Examples:

rush -deltaskfu vaio.55 117 # Delete JOBTID #117 from job vaio.55
rush -deltaskfu vaio.55 183 tahoe    # Delete CPUTID #183 from the tasklist on host tahoe

JOBTID values can be found in -lc, -lcf and -tasklistfull reports.
CPUTID values can be found in -lcf and -tasklistfull reports.

Caveat: This command is not intended for casual use. It is to be used by administrators in unusual situations where cpus are stuck due to communications problems between machines. Use this command carefully.

rush -dependon
rush -dependon [-|depjobid[,..]]

Set Dependency On Other Jobs.

Sets new 'dependon' jobids for the current [specific] job. See the submit script docs on DependOn for more info.

Read the examples carefully, to avoid confusing jobid(s) to affect with new jobids for the dependon command; remember to separate all 'dependon' jobids with commas instead of spaces.

Caveats:

Setting 'dependon' to a new value disables all previous values (i.e., clears them first).

Setting dependon to '-' will disable it, but you will have to un-Hold any frames manually.

All 'dependon' jobids must have the same hostname as the job being modified.

See also, rush -waitfor.

To differentiate between the new value for 'dependon', and the jobid(s) to be affected, the new value for 'dependon' must be a comma-separated list of jobids with no spaces. Examples:

rush -dependon - # Disable all dependencies
 
rush -dependon tahoe.37,tahoe.38, # Job now depends on 'tahoe.37' and 'tahoe.38'.
# Trailing comma required
 
rush tahoe.40 -dependon tahoe.37,tahoe.38,     # tahoe.40 now depends on 'tahoe.37' and 'tahoe.38'
 
rush tahoe.40 -dependon tahoe.37, # tahoe.40 now depends on job 'tahoe.37'
# Trailing comma on tahoe.37 is required

rush -dexit
rush -dexit [remotehost..]

Daemon Exit.

(Administrative) Tells a daemon to exit immediately via TCP. Acknowledges success. Only root and the rush adminuser can use this command.

rush -dexitnow
rush -dexitnow [remotehost..]

Daemon Exit Now.

(Administrative) Tells daemon to exit immediately, via UDP. There is no acknowledge. Only root and the rush adminuser can use this command. Use only in case of emergency.

rush -dlog
rush -dlog <flags> [remotehost..]

Daemon Debug Logging

(Administrative) Enables certain daemon debug logging flags. Only root and the rush adminuser can use this command.

Logging Flags



These are flags that can be used with rush -dlog, rushd -d, and the rush.conf file's LogFlags. These flags can be combined to accumulate logging verbosity. All flags can be enabled by specifying 'a'.

    a - all
    b - bump mechanism logging
    d - log duplicate/redundant receipt of packet drops
    e - events (time oriented, async)
    f - fork
    h - hostname lookups
    j - Log job submissions
    k - Log bumped/killed/usurped tasks
    l - Logical string evaluations
    o - connect()/open()/close()/bind()/socket() (low level)
    p - parse command line arguments, submit scripts
    m - memory calculations (RAM) during priority battles, etc
    n - network commands (udp/tcp)
    r - reboot management/transactions
    s - signals
    t - tcp
    u - udp
    w - 'waitfor' checks
    y - yp lookups
    C - class ToWords/FromWords
    F - File loading line-by-line debugging
    E - Errors not normally displayed (benign, but suspect)
    T - task/taskack transactions
    U - update (scheduling, priority mechanism, idle cpu management)
    R - Reaper msgs
    S - Server/Client context switches
    X - Random UDP message dropping -- TESTING ONLY!!
	('a' does not affect this option, it must be specified) 

rush -done
rush -done <framerange|framestate..> [jobid..]

Done Frames.

Changes frame(s) into the Done state for current [specific] job. If frames are running, they are killed and enter the 'Done' state on completion.

The frames to affect can either be specified as a frame range (i.e. 1-100) or as a frame state, for which all frames matching that state will be changed. Examples:

% rush -done 1-100 # 'Done' frames 1 through 100
% rush -done fail # 'Done' all frames currently Fail
% rush -done fail que    # 'Done' all frames currently Fail or Que

rush -donecommand
rush -donecommand <command|-> [jobid..]
rush -donecommand [jobid..] < file

Set Job Done Command.

Changes the donecommand for the job. The donecommand is executed when the job is dumped.

(New in rush 102.31m and up)
If 'cmd [args]' are not supplied, the command will be read from stdin. This is useful to avoid shell quoting issues. If multiple lines are specified, they will be joined into one single line.

Setting the donecommand to '-' will disable it. Examples:

% rush -donecommand "/bin/sleep 30"   # set donecommand to '/bin/sleep 30'
% rush -donecommand "-" # disable donecommand

See also the submit script DoneCommand for more info.

rush -donemail
rush -donemail [email[,email..]] [jobid..]

Set Job Done Mail.

Changes who to send mail to when job is done.

See DoneMail submit command for more info and examples.

rush -down
rush -down downhost[,downhost..] jobhost

A Machine Is Down.

Tells rush jobs a machine is down.

If a machine hangs or goes down, rush has no way to know it.. for all rush knows, the remote machine is just under heavy load, and is being unresponsive.

Use '-down' to requeue frames in jobs that are stuck in the Run or Start state, because the remote machine is either hung or has been turned off unexpectedly.

Normally frames will requeue when the remote is rebooted, but in cases where the machine needs to stay off for a while, the user can use '-down' to manually tell rush the remote is down, and to requeue the hung frames elsewhere.

This also helps jobs that won't dump because some frames are 'stuck' on a host that is down.

Warning: This command should only be used in extreme situations where job(s) show the frames running on a remote machine that is known to be down, or not running the frame.

rush -down huron,erie tahoe     # tell all jobs on tahoe
# that machines 'huron' and 'erie' are down

rush -dump
rush -dump [jobid|user|user@host..]

Dump Job.

Dumps the job. Busy frames are killed right away.

If no arguments are specified, the RUSH_JOBID variable is used to determine which job to dump.

If jobid(s) are specified, those jobs will be dumped.

If a user's name is specified, all jobs owned by that user on the local machine will be dumped (e.g., 'rush -dump fred').

In the case of user@host, all jobs owned by 'user' served by 'host' will be dumped.
i.e., 'rush -dump fred@tahoe' will dump all jobs owned by fred that were submitted to host tahoe.

% rush -dump tahoe.37 tahoe.38    # Dumps jobs tahoe.37 and tahoe.38
% rush -dump fred # Dumps all jobs owned by 'fred' served by the local machine
% rush -dump fred@superior # Dumps all jobs owned by 'fred' served by host 'superior'

rush -end
rush -end [jobid..]

End Job.

Ends a job. Similar to rush -dump, but waits for running frames to finish (i.e., running frames are not killed).

rush -fail
rush -fail <framerange|framestate..> [jobid..]

Fail Frames.

Changes frame(s) into the Fail state for current [specific] job. If frames are running, they are killed and enter the 'Fail' state on completion.

The frames to affect can either be specified as a frame range (i.e., 1-100) or as a frame state, for which all matching frames will be affected. Examples:

% rush -fail 1-100 # Fail frames 1 through 100
% rush -fail done # Fail all frames currently Done
% rush -fail done hold    # Fail all frames currently Done or Hold

rush -fu
rush [args..] -fu

Force User1

The -fu flag augments other operations. It overrides warnings pertaining to lack of permission to do an operation because the user invoking it is not the owner of the job.

For instance, if you want to control another person's job, you might get an error, e.g.:

% rush -an vaio va-229 # Attempt to add 'vaio' as a nevercpu to someone's job
rush: va-229: you're not owner!   # Fails because you're not the job's owner
 
% rush -an vaio va.229 -fu         # Same command with -fu to force it...
Add nevercpu 'vaio' # ...now it works

See also the RUSH_FU environment variable.

Note: This feature may be disabled by the system administrator via the DisableFu flag in the Rush Configuration File.

1 This acronym is rumored to have alternate, pejorative expansions.

rush -getoff
rush -getoff [remotehost|+hostgroup..]

Get Off A Machine.

Similar to 'rush -offline', but kills and requeues any currently running frames before taking the localhost [remotehost] offline.

If no arguments are specified, assumes the localhost.

% rush -getoff # Kills frames running on localhost (requeing them elsewhere)
# leaving the localhost offline (won't accept any more renders)
% rush -getoff tahoe erie      # Kills frames running on tahoe and erie (requeing the frames elsewhere)
# leaving both hosts offline (won't accept any more renders)

rush -hold
rush -hold <framerange|framestate..> [jobid..]

Hold Frames.

Changes frame(s) into the Hold state for current [specific] job. If frames are running, they are killed and enter the 'Hold' state on completion.

When a frame is in the Hold state the frame will not be rendered, and a job will not autodump if there are any Hold frames in the frame list.

The frames to affect can either be specified as a frame range (i.e., 1-100) or as a frame state, for which all matching frames will be affected. Examples:

% rush -hold 1-100 # Hold frames 1 through 100
% rush -hold fail # Hold all frames currently Fail
% rush -hold fail done    # Hold all frames currently Fail or Done

rush -imgcommand
rush -imgcommand 'command [args..]' [jobid..]
rush -imgcommand [jobid..] < file

Set Image Display Command

Used by IRUSH to determine the command to execute whenever the user double clicks on a frame in the IRUSH 'Frames' report. Normally, the command invoked should display the rendered image for that frame.

This should be a complete command to view an image in your favorite image viewer, with %d or %04d in place of the frame number.

(New in rush 102.31m and up)
If 'cmd [args]' are not supplied, the command will be read from stdin. This is useful to avoid shell quoting issues. If multiple lines are specified, they will be joined into one single line.

The image viewing command must background itself, or you must force it by using '&' (Unix), or 'start /b' (Windows). Examples:

% rush -imgcommand 'xv /job/images/foo.%04d.sgi &' # (Unix) Invokes 'xv' to view images
C:\> rush -imgcommand "start /b flip //nt/images/s1.%04d.png" # (Windows) Invokes 'flip' in background to view images

See the ImgCommand submit command for more info.

rush -jobnotes
rush -jobnotes 'notes..' [jobid..]
rush -jobnotes [jobid..] < notes.txt
rush -jobnotes '-' [jobid..]

Set Job Notes.

Appends free form strings of 'job notes' to the current [specific] job. Job notes are viewable in 'rush -ljf'.

If 'notes..' are not specified, the notes can be supplied on stdin.

If 'notes..' are specified on the command line, they must be quoted if they contain spaces.

Specifing 'rush -jobnotes -' will clear all previous notes.

See Notes submit command for more info.

rush -jobnotes < foo.txt # Set job notes to contents of foo.txt
# (Previous notes are completely cleared)
rush -jobnotes 'This is a test' # Set job notes to 'This is a test'

You can dynamically modify the job notes (e.g. insert, remove, reformat), using these steps:

    1) Use 'rush -ljf' to get the current notes into a local variable or file.
    2) Change the notes in your variable or file as needed.
    3) Use 'rush -jobnotes -' to clear the previous notes.
    4) Use 'rush -jobnotes < file' or pipe in the new notes.

rush -lac
rush -lac [-s secs] [-c count]

List All Cpus.

Lists the status of all rush cpus on the network. Report should come up quickly, even on large networks.

This report is useful for seeing which cpus are running whose jobs.

[-s secs] is an optional argument to specify the number of seconds to wait for responses from the remote hosts. Default is 5.

[-c count] is an optional argument to specify the number of times to automatically regenerate the report (for continuous updates). A value of 0 indicates infinite updating. Default is 1. Example report:

% rush -lac
HOST       OWNER    JOBID          TITLE                     FRM  PRI   PID        ELAPSED
tahoe      -        -              -                         -    -     -           Online
tahoe      -        -              -                         -    -     -           Online
superior   erco     vaio.50        FOREST_RENDER             0034 100   4026      00:10:01
superior   erco     vaio.50        FOREST_RENDER             0035 100   4027      00:10:02
superior   tamu     ibm4.208       AUTO_CAD                  0101 300k  2031      02:43:31
superior   tamu     ibm4.208       AUTO_CAD                  0102 300k  2035      02:43:31
erie       erco     vaio.50        FOREST_RENDER             0041 900k  14560     00:10:15
erie       erco     vaio.50        FOREST_RENDER             0042 900k  14561     00:10:15
michigan   -        -              -                         -    -     -          Offline
michigan   -        -              -                         -    -     -          Offline
michigan   -        -              -                         -    -     -          Offline
michigan   -        -              -                         -    -     -          Offline
*** NO RESPONSE FROM:
*** ontario huron

Note that machines that did not respond are listed in the summary at the bottom of the report; all lines of these summaries are prefixed by '***'.

rush -lacf
rush -lacf [-s secs] [-c count]

List All Cpus Full.

Lists the full info of all rush cpus on the network. This report may take a while to run.

This report prints out more information than people usually need. This command is more intended to either be parsed by external scripts needing access to all information rush can provide, or for debugging.

[-s secs] is an optional argument to specify the number of seconds to wait for responses from the remote hosts. Default is 5.

[-c count] is an optional argument to specify the number of times to automatically regenerate the report (for continuous updates). A value of 0 indicates infinite updating. Default is 1.

rush -lah
rush -lah [hostname..]

List All Hosts.

Lists the Ram/Criteria configuration for all hosts in the render queue, which is loaded directly from the $RUSH_DIR/etc/hosts file. Example:

  % rush -lah
  IP               Hostname   Ram  Cpus MinPri Criteria
  10.100.100.1     tahoe      512  2    0      +any,irix
  10.100.100.2     superior   512  2    0      +any,irix,+dante
  10.100.100.3     erie       512  2    0      +any,irix,+dante
  10.100.100.4     ontario    512  2    0      +any,irix,+dante
  10.100.100.5     vaio       128  1    0      +any,linux,intel
  10.100.100.6     rotwang    128  1    100    +any,linux,intel    

If hostname is specified, i.e., 'rush -lah hostname', the output comes from the cache of the daemon running on the specified host. This is useful in determining hostname caching problems.

rush -lahf
rush -lahf [hostname..]

List All Hosts Full.

Full hosts report for all hosts on local [remote] host.

This report prints out more information than people usually need. This command is more intended to either be parsed by external scripts needing access to all information rush can provide, or for debugging.

rush -laj
rush -laj [-s secs] [-c count]

List All Jobs.

Queries all hosts on the network for what jobs are running.

-s secs optionally sets the amount of time to wait for responses from remotes, default is 3.

-c count optionally specifies the number of times to continuously update the report, default is 1. -c 0 creates a continuously (indefinite) updating report.

% rush -laj
STATUS JOBID          TITLE                     OWNER    %DONE %FAIL BUSY    ELAPSED
Run    erie.167       100/340/master            tamu     %18   %0    8       01:15:28
Run    erie.169       100/410/master            tamu     %75   %0    20      01:11:21
Run    erie.170       100/390/master            tamu     %10   %34   4       01:10:44
Run    erie.171       100/360/master            tamu     %10   %34   4       01:02:43
Run    huron.454      W:090/440/all             krement  %100  %0    0       26:25:31
Run    huron.457      W:090/425/master          krement  %100  %0    0       26:11:59
Run    huron.476      W:090/425/master          krement  %100  %0    0       23:40:37
Run    huron.519      Q:090/460/master          krement  %5    %0    8       00:21:27
Pause  tahoe.76       230/250/layout_lock       erco     %2    %0    0       01:52:08
Run    allek.790      qr2                       tje      %80   %1    4       06:58:20
Run    allek.794      180/260/DAY               tje      %80   %1    2       06:38:48
Run    allek.796      180/250/DAY               tje      %0    %0    0       06:34:21
Run    allek.801      qr2                       tje      %0    %0    0       05:27:40
Run    vaio.663       230/tdcheck/roomBC        woz      %80   %20   0       00:44:53

rush -lajf
rush -lajf [-s secs] [-c count]

List All Jobs Full.

Full job report for all jobs on the network. This report may take a while to run.

This report prints out more information than people usually need. This command is more intended to either be parsed by external scripts needing access to all information rush can provide, or for debugging.

-s secs optionally sets the amount of time to wait for responses from remotes, default is 3.

-c count optionally specifies the number of times to continuously update the report, default is 1. -c 0 creates a continuously (indefinite) updating report.

rush -lc
rush -lc [-t timeout] [jobid..]

List Cpus.

Lists cpus for current [specific] job. Lists a job's cpus, and what they're doing (or not doing).

Use '-t timeout' to control the amount of time rush waits to make a connection to each remote before it gives up. The default is 40 seconds.

Example:

% rush -lc           # List Cpus assigned to the current job
CPUSPEC[HOST]        STATE       FRM  PID     JOBTID  ELAPSED  NOTES
huron=4@800k         JobPass     -    -       178     00:00:00 This is a 'neverhost'
huron=4@800k         JobPass     -    -       179     00:00:00 This is a 'neverhost'
huron=4@800k         JobPass     -    -       180     00:00:00 This is a 'neverhost'
huron=4@800k         JobPass     -    -       181     00:00:00 This is a 'neverhost'
+any=10@100[howland] Busy        0080 14733   165     00:00:01 
+any=10@100[howland] Busy        0078 14731   166     00:00:01 
+any=10@100[howland] Busy        0079 14732   167     00:00:01 
+any=10@100[toronto] Idle/Nak    -    -       171     00:00:00 -
+any=10@100[toronto] Idle/Nak    -    -       172     00:00:00 -
+any=10@100[toronto] Idle/Nak    -    -       173     00:00:00 -
+any=10@100[vaio]    Busy        0074 4107    174     00:00:03 
+any=10@100[vaio]    Busy        0071 4100    175     00:00:03 
+any=10@100[vaio]    Busy        0072 4101    176     00:00:03 
+any=10@100[vaio]    Busy        0073 4106    177     00:00:03 
		

List Cpus Heading

Heading

Description

CPUSPEC[HOST] The cpu specification supplied by the user during submit. If hostgroups are specified (i.e. +any), the group is broken out into individual cpus, with the hostname of each processor shown in [brackets].
STATE The state the cpu's 'task reservation' is in. In the following, 'cpuserver' means the remote host serving the cpu.

    Idle	--  task idle, waiting for cpuserver 
    Idle/Nak	--  job is still trying to reach the cpuserver
    Avail	--  cpuserver wants us to run a frame 
    Start	--  found frame to start, reply to cpuserver 
    Run		--  cpuserver telling us frame started ok 
    Busy	--  frame is busy, reply to cpuserver 
    CpuPass2	--  replies to cpuserver, remains in state
    JobPass	--  job told cpuserver we can't use its cpu (see NOTES for why)
    Unpass	--  remote reverting to idle state (cosmetic)

FRAME The frame that is being rendered.
PID The process id on HOST for the running render script. This is also the 'process group leader'.
JOBTID The 'job task id' for this processor. Only useful as an argument commands like 'rush -rc'.
ELAPSED The wall clock elapsed time in hours:minutes:seconds for the rendering frame.
NOTES Various notes regarding the state of the job. These notes can sometimes be stale; the 'STATE' information is a more accurate representation of the state of the cpu.

rush -lcf
rush -lcf [-t timeout] [jobid..]

List Cpus Full.

A 'full' report for all of the current [specific] job's cpus.

This report prints out more information than people usually need. This command is more intended to either be parsed by external scripts needing access to all information rush can provide, or for debugging.

Use '-t timeout' to control the amount of time rush waits to make a connection to each remote before it gives up. The default is 40 seconds.

rush -lf
rush -lf [-t timeout] [jobid..]

List Frames.

Lists Frames for current [specific] job. Lists a job's frames to see what state they're in.

Use '-t timeout' to control the amount of time rush waits to make a connection to each remote before it gives up. The default is 40 seconds.

% rush -lf                    # List Frames for the current job
STAT FRAME TRY HOSTNAME       PID     START          ELAPSED  NOTES
Run  5000  1   vaio           18092   02/26,02:15:40 00:00:21 
Run  5001  1   vaio           18093   02/26,02:15:40 00:00:21 
Run  5002  1   vaio           18100   02/26,02:15:50 00:00:11 
Que  5003  0   -              0       00/00,00:00:00 00:00:00 
Que  5004  0   -              0       00/00,00:00:00 00:00:00 
Que  5005  0   -              0       00/00,00:00:00 00:00:00 
Que  5006  0   -              0       00/00,00:00:00 00:00:00 
Que  5007  0   -              0       00/00,00:00:00 00:00:00 
Que  5008  0   -              0       00/00,00:00:00 00:00:00 
		

The columns contain the following information:

List Frames Heading

Heading

Description

Stat The status of the frame. Can be any of:

  • Que - The frame is queued, ready to be run by an available cpu
  • Run - The frame is busy running
  • Done - The frame completed successfully
  • Fail - The frame failed to run successfully (exit code was 1)
  • Hold - The frame will not run until changed manually to Que

The following are transitional states for frames, which you should only see for a short time:

  • Strt - Frame just started to run, no process id yet
  • Die - The frame is being killed, but hasn't received an exit code back yet

Frame The frame number, padded 4 digits.
Try The number of times this frame has been tried. Includes requeues due to exit(2), but does not include priority bumps.
Hostname The name of the host that is running (or that ran) the frame.
PID The process id of the render script. This is also the process group leader for the frame's process hierarchy.
Start The date/time the render began running.
Elapsed The wall clock elapsed time in hours:minutes:seconds.
Notes Free form notes text, set by the user's invocation of 'rush -notes frm:"text"'.

rush -lff
rush -lff [-t timeout] [jobid..]

List Frames Full.

A 'full' report of all frames' state information.

This report prints out more information than people usually need. This command is more intended to either be parsed by external scripts needing access to all information rush can provide, or for debugging.

Use '-t timeout' to control the amount of time rush waits to make a connection to each remote before it gives up. The default is 40 seconds.

rush -lfi
rush -lfi [-t timeout] [jobid..]

List Frame Information.

Lists Frame info for current [specific] job, including average render times, ETAs, percent Busy/Done/Fail, etc. Example:

% rush -lfi vaio.139       # List Frame Info for job 'vaio.139'
Jobid        State Total Perc Average    Average ETA
------------ ----- ----- ---- ---------- ------------------------
vaio.139     Que   7     %69  -          -
vaio.139     Run   1     %10  -          -
vaio.139     Done  2     %20  00:32:16   Thu Sep 28 00:41:43 2000
vaio.139     Fail  0     %0   -          -
vaio.139     Hold  0     %0   -          -
		

Some description of the average columns:

  • Average
    The average render times. This is the sum of all the Done frames' render times divided by the total Done frames.

  • Average ETA
    This is the estimated time of completion for the job, based on the average render time for frames rendered successfully so far vs. the wall clock time spent running the job. e.g.:

      oldest_start   = "The oldest start time for all Done frames"
      recent_end     = "Most recent end time for all Done frames"
      time_spent     = ( recent_end - oldest_start )
      time_per_frame = time_spent / total_done_frames
      time_to_go     = time_per_frame * ( total_que + total_hold )
      	

Warning: the ETA is meant for ballpark estimates only, and is not meant to be taken literally.

rush -lhg
rush -lhg [+hostgroup..]

(new in 102.31)

List Host Groups.

Shows all [specific] hostgroups your sysadmin has configured in rush.

If no arguments are specified, all hostgroups are listed. Otherwise, arguments can be the names of hostgroups to limit the report to display.

Both hostgroups and hostnames are sorted alphabetically.

% rush -lhg            # Lists all hostgroups when no arguments specified
  +any: erie
	ontario
	rotwang
	superior
	tahoe
	vaio

+dante: erie
	ontario
	superior

+intel: rotwang
	tahoe
	vaio

 +irix: erie
	ontario
	superior

+linux: rotwang
	tahoe
	vaio

% rush -lhg +dante     # Lists only the '+dante' hostgroup
+dante: erie
	ontario
	superior
		

rush -lhc
rush -lhc [criteria]

(new in 102.31)

List Host Criteria.
Shows all [specific] host criteria your sysadmin has configured in rush.

If no arguments are specified, all host criteria are listed. Otherwise, arguments can be the criteria names to limit the report to display.

Both criteria and host names are sorted alphabetically.

% rush -lhc            # Lists all criteria when no arguments specified
intel: vaio
       rotwang

 irix: erie
       ontario
       superior

linux: rotwang
       tahoe
       vaio

% rush -lhc linux      # Lists only hosts matching 'linux' criteria
linux: rotwang
       tahoe
       vaio
		

rush -lj
rush -lj [-t timeout] [remotehost]

List Jobs.

Shows all jobs running on the local [remote] host.

Use '-t timeout' to control the amount of time rush waits to make a connection to each remote before it gives up. The default is 40 seconds.

[you@erie] % rush -lj                  # List Jobs on local workstation
STATUS JOBID          TITLE                     OWNER    %DONE %FAIL BUSY    ELAPSED
Run    erie.167       100/340/master            tamu     %18   %0    8       01:15:28
Run    erie.169       100/410/master            tamu     %75   %0    20      01:11:21
Run    erie.170       100/390/master            tamu     %10   %34   4       01:10:44
Run    erie.171       100/360/master            tamu     %10   %34   4       01:02:43

[you@erie] % rush -lj tahoe            # List Jobs on remote host tahoe
STATUS JOBID          TITLE                     OWNER    %DONE %FAIL BUSY    ELAPSED
Run    tahoe.5        100/540/master            izzie    %25   %0    4       00:30:01
Run    tahoe.6        100/540/comp              izzie    %25   %0    4       00:30:02
Run    tahoe.10       100/640/master            izzie    %10   %0    4       00:22:48
Run    tahoe.11       100/640/comp              izzie    %12   %0    4       00:22:49
		

The columns contain the following information:

Job Report Headings

Heading

Description

Status The status of the job. Can be any of:

  • Wait - The job is waiting for another job to finish (WaitFor, -waitfor)
  • Pause - The job has been paused with -pause
  • Run - The job is available to run frames
  • Done - The job is done, all the frames rendered successfully
  • Fail - The job is done, some frames failed

The following are transitional states for the job, which you should only see for a short time:

  • End - the job was ended with -end
  • Dump - the job was dumped with -dump
  • Done - all frames Done, about to run DoneCommand, -donecommand
  • DoneCmd - the configured DoneCommand is running
  • Remove - about to be removed from the system

Jobid The job's jobid.
Title The job's title (Title, -title).
Owner The user that submitted the job.
%Done The percentage of frames that are in the Done state.
%Fail The percentage of frames that are in the Fail state.
Busy The number of frames currently in the Run state.
Elapsed The elapsed time in HH:MM:SS since the job started running.
This field may also contain the messages 'Job paused' or 'Wait for other jobs'.

rush -ljf
rush -ljf [-t timeout] [remotehost]

List Jobs Full.

Lists all jobs running on the local [remote] host, showing 'full information' in a multi-line format.

This report prints out more information than people usually need. This command is more intended to either be parsed by external scripts needing access to all information rush can provide, or for debugging.

Use '-t timeout' to control the amount of time rush waits to make a connection to each remote before it gives up. The default is 40 seconds.


[erco@tahoe] % rush -ljf
      Jobid: tahoe.9
      State: Done
   ActState: Run
      Title: HONDA
DefPriority: 1
     LogDir: //server/jobs/HONDA/SC4A/rushlogs
   LogFlags: 
 ImgCommand: xv //server/jobs/HONDA/SC4A/imgs/sc4a-%04d.tif
        Ram: 10
       Nice: 10
    MaxTime: 00:10:00
 FrameFlags: 
    Command: //server/jobs/HONDA/SC4A/render-vehicle 640 480
 ChkCommand: 
DoneCommand: 
   AutoDump: off
       User: erco (1000/100)
   DoneMail: -
  StartDate: Mon May 14 23:54:53 2001
    EndDate: -
    Elapsed: 11:22:34
     Frames: 50
       Cpus: superior=2@100 +farm=20@10
   Notes[0]: -
   Criteria: 
		

rush -licpause
rush -licpause [remotehost]

Pause Job Into A License Pause State.

Causes the job to pause for the number of seconds specified by the submit command 'LicPauseSecs' or by the most recent 'rush -licpausesecs' command.

Normally 'rush -licpause' is executed from within a render script, when it detects the renderer failed with a license error, causing the job to pause for typically a minute or two, then unpauses itself again.

For info on how to use 'rush -licpause' mechanism, see the 'How To' documentation on Render License Errors.

'rush -licpause' will be ignored if the job has already been paused with 'rush -pause'.


   :   (your render script)
   :
   ## YOUR RENDER COMMANDS HERE
   render /job/MYSHOW/MYSHOT/ribs/foo.rib
   set $err = $status

   if ( $err == $PRMAN_LIC_ERROR ) then

       # LICENSE ERROR OCCURRED -- PAUSE JOB, REQUEUE FRAME
       rush -licpause
       rush -notes ${RUSH_FRAME}:'License Error'
       exit 2

   endif
   :
		

rush -licpausesecs
rush -licpausesecs secs [jobid..]

Set Pause Time for License Errors

Sets the amount of time a job remains in the 'Pause' state when 'rush -licpause' is invoked from a render script.

For info on how to use 'rush -licpause' mechanism, see the 'How To' documentation on Render License Errors.

rush -log
rush -log [-tail] <framerange> [jobid..]

View Frame Error Logs.

Prints the frame logs for the specified frame range.

The '-tail' option can be specified to continously output appended data as the log file grows. New in 102.31m

Using the job's 'logdir' value, prints the logs found in that directory for the frames you specify, e.g.:

% rush -log 1-10,2 20   # view logs for frms #1-10 on 2s, and frm #20

rush -logdir
rush -logdir pathname [jobid..]

Log Directory.

Changes the job's log directory, where frame log files are written to.

This does not affect commands that are already running or have run. i.e., old logs are not moved to the new location, or renamed on the fly.

When changing the logdir with -logdir, no checks are made to see if 'path' is a valid directory.

(New in rush 102.31p and up)
'%s' can be used to insert the current jobid into the logdir path. Note: when the logdir is changed from the command line (rush -logdir) and has an embedded '%s', the directory is not created for you. Auto-creation of the logdir only occurs during job submission to avoid the "catch-22" scenario where the caller can't create the directory with a jobid in it if the jobid doesn't exist yet.

	rush -logdir //server/jobs/logs/%s    # eg. "//server/jobs/logs/tahoe.34"
        

See LogDir for more information.

rush -logflags
rush -logflags <-|keeplast|keepall> [jobid..]

Log Flags.

Changes the log flags for the job. Examples:

rush -logflags - # Logs are overwritten (Default)
rush -logflags keepall   # Keep all logs; concatenate old to *.old (e.g. 0012.old)
rush -logflags keeplast    # Like 'keepall', but only keeps last log (don't concatenate)

See LogFlags for more information.

rush -maxtime
rush -maxtime <hh:mm:ss> [jobid..]

(New in rush 102.30c and up)

Sets maximum time for rendering frames.

The system will automatically requeue frames that exceed the specified maxtime. See the MaxTime submit command for more info.

rush -nice
rush -nice <niceval> [jobid..]

Set Job's Niceness.

Sets the nice value for the job; 0 runs as normal user process, higher values (10, 20) increase niceness to others. See Nice submit command for more info.

rush -notes
rush -notes <framerange>:'notes..' [jobid..]

Frame Notes.

Sets Notes for frame(s) on current [specific] job. These notes will show up in the rightmost column of 'rush -lf' reports. Examples:

rush -notes 155:"license error"   # set notes for frame 155 to 'license error'
rush -notes 200-250:"redo" # set notes for frames 200 thru 250 to "redo"

rush -offline
rush -offline [remotehost|+hostgroup..]

Offline My Machine.

Offlines the local [remote] daemon.

Lets frames that are already rendering complete before taking the processors offline. Once offline, no new frames will be started.

'rush -offline' is similar to 'rush -getoff', differing only in that -offline allows any currently rendering frames to complete before taking the processors offline. 'rush -getoff' will bump any running renders, freeing up the processors right away. The bumped frames will be requeued.

Examples of using 'rush -offline':

rush -offline   # offline all cpus on local host
rush -offline tahoe # offline all of tahoe's cpus
rush -offline +farm   # offline the entire render farm

To return processors to the online state, use rush -online.

rush -online
rush -online [remotehost|+hostgroup..]

Online My Machine.

Onlines the local [remote] daemon. Frames will be allowed to start running on the host.

To take hosts offline, use either rush -offline or rush -getoff.

rush -pause
rush -pause [jobid..]

Pause Job

Pauses the current [specific] job. Busy frames will be allowed to finish, no new frames will be started.

To pause a job and kill the running frames, use:

    rush -pause ; rush -que run

To continue a job from pause, use rush -cont.

rush -ping
rush -ping [-t timeout] [remotehost|+hostgroup..]

Ping Rush Daemon.

(Administrative) Pings the local [remote] daemon to see if it's running, and what it's doing.

Use '-t timeout' to control the amount of time rush waits to make a connection to each remote before it gives up. The default is 40 seconds.

rush -priority
rush -priority [jobid..]

Change Default Job Priority.

Changes the default priority for the job, which affects all 'cpus' specifications that did not indicate priority values (and therefore used the default priority).

Example-- If a job submitted the following 'cpus' specifications:


    priority 10
    :
    :
    cpus erie=2@100    
    cpus tahoe=4
    cpus +any=10
    

..this would create a job with 2 cpus on erie at a priority of 100, and all other cpus at a priority of 10.

Changing this job later with 'rush -priority 20' would cause all cpus (except erie, which specified a priority) to change their priorities to 20.

See the Priority submit command for setting the initial default priority.
See Priority Description for a description of how priority values work.

rush -push
rush -push [-s secs] [-c tries] <file[,file..]> [host|+hostgroup]

Push File(s) To Remotes.

(Administrative) Pushes rush configuration files (such as rush.conf, hosts, etc) to remote servers. Used to distribute rush config files quickly.

  • -s secs - Specifies the number of seconds to wait for replies from remotes. Default is 5.

  • -c tries - Number of retries made if no response in the number of seconds specified (-s secs). Default is only 1 try is made.

Files to be 'pushed' must be specified by name. Only files in the rush etc directory can be 'pushed'. Specify filenames only, not full paths. More than one file can be specified, if separated by commas.

"file" may only contain the characters "A-Z", "a-z", "0-9", "-", "_", and a single ".". This prevents abusive use of -push, since only files in $RUSH_DIR/etc are affected.

Only root and the rush adminuser can use this command.

The sysadmin can enable/disable 'rush -push' operations via a setting in the rush.conf file, using the AllowPush flag.

% rush -push hosts,rush.conf # Push the rush hosts and rush.conf file to all hosts
% rush -push rush.conf,license.dat     # Push rush.conf and license.dat to all rush hosts
% rush -push rush.conf +linux     # Push rush.conf to only hosts in the +linux hostgroup
% rush -push rush.conf tahoe huron     # Push rush.conf to hosts 'tahoe' and 'huron' only
% rush -push rush.conf,hosts,license.dat tahoe huron     # Push rush.conf, hosts, and license.dat to hosts
# 'tahoe' and 'huron' only

rush -que
rush -que <framerange|framestate..> [jobid..]

Re-Queue Frames

Changes frame(s) into the Que state for current [specific] job. If frames are running, they are killed and enter the 'Que' state on completion.

The frames to affect can either be specified as a frame range (i.e. 1-100) or as a frame state, for which all frames matching that state will be changed. Examples:

% rush -que 1-100 # Que frames 1 through 100
% rush -que fail # Que all frames currently Fail
% rush -que fail done    # Que all frames currently Fail or Done

rush -ram
rush -ram <ramval> [jobid..]

Set Job's Ram Use.

Sets the Ram use (in MB) for the job. See Ram submit command for more info.

rush -ramlist
rush -ramlist [remotehost..]

View the ram usage of rush jobs for localhost [remotehost] machine.

Shows a report of all running rush processes on the machine, including how much ram each has requested to reserve, and a running total for the available ram left over.

% rush -ramlist tahoe
STATE   JOBID/TITLE                    PRI    RAMUSE NOTES
Busy    neverland.57,grkenttest        1         800     
Busy    neverland.58,pflare            1         200     
					      ------
    Total ram on tahoe: 1024  
Available ram on tahoe: 24    
		

rush -rc
rush -rc <cpuspec|tidspec|hostname> [jobid..]

Remove Cpu

Removes Cpu from cpu list of current [specific] job. If the cpus being removed are busy running frames, the frames are killed and re-submitted elsewhere.

Cpus can be removed in one of several ways:

  • Individually by the JOBTID number, e.g. rush -rc .32
  • By hostname, e.g. rush -rc tahoe
  • By a particular cpu specification as shown in the 'rush -lc' report, e.g., rush -rc tahoe=4@200

To remove a cpu via 'JOBTID' values (e.g., 'rush -rc .334') you must precede each value with a period. When you delete by JOBTID, you are deleting single cpus from the 'rush -lc' report. Note: this report includes the JOBTID values so you can see which values to delete. If the cpu you delete is part of a larger specification, (e.g., tahoe=4@12), then the cpu count for the spec will be modified and the cpu count in that spec will be decremented as well (e.g., tahoe=3@12)

If you remove a hostname (e.g., 'rush -rc tahoe') then all cpu specifications that have that host name (e.g., tahoe=3@100) will be removed. Also, any hostgroups that expand to include that host will have that host removed from the expansion (e.g., +any=3@100, which includes tahoe).

 % rush -lc
CPUSPEC[HOST]        STATE       FRM  PID     JOBTID  PRI   ELAPSED  NOTES
howland=2@900        JobPass     -    -       171     900   00:00:00 No more frames
howland=2@900        JobPass     -    -       172     900   00:00:00 No more frames
+any=1@1[howland]    JobPass     -    -       147     1     00:00:01 No more frames
+any=1@1[howland]    JobPass     -    -       148     1     00:00:00 No more frames
+any=1@1[nt-1]       JobPass     -    -       149     1     00:00:31 This is a 'neverhost'
+any=1@1[nt-1]       JobPass     -    -       150     1     00:00:31 This is a 'neverhost'
+any=1@1[rotwang]    JobPass     -    -       151     1     00:00:01 No more frames
+any=1@1[rotwang]    JobPass     -    -       152     1     00:00:01 No more frames

% rush -rc howland
nt-1.15 'howland=2@900': Removed
nt-1.15 '+any=1@1': 2 task(s) deleted

% rush -lc
CPUSPEC[HOST]        STATE       FRM  PID     JOBTID  PRI   ELAPSED  NOTES
+any=1@1[nt-1]       JobPass     -    -       149     1     00:00:37 This is a 'neverhost'
+any=1@1[nt-1]       JobPass     -    -       150     1     00:00:37 This is a 'neverhost'
+any=1@1[rotwang]    JobPass     -    -       151     1     00:00:08 No more frames
+any=1@1[rotwang]    JobPass     -    -       152     1     00:00:08 No more frames
		

If you remove a cpu specification (e.g., 'rush -rc +any=3@100'), it must match character-for-character the entry shown in the 'rush -lc' report for the job:

% rush -ac tahoe@100 # Add a cpu.
% rush -rc tahoe@100 # Now try to remove it
'tahoe@100' no such cpu specification # FAILED: need to use spec shown in 'rush -lc'
 
% rush -lc # Look at 'rush -lc' report
CPUSPEC      STATE  FRM   PID    ELAPSED .. 
tahoe=1@100  Run   0002  26747  00:00:11 ..    
# More complete specification in report.
 
% rush -rc tahoe=1@100 # Remove using spec shown in report
'tahoe=1@100' removed. # It works

rush -reserve
rush -reserve <cpuspec> [ramval]

Reserve Cpus.

Reserves cpus by creating a 'dummy' job that holds the cpus. The job's title will be RESERVE. Reservation jobs are like any other-- to remove a reservation, dump the job. To change the reservation, you can use IRUSH or the usual rush commands like -ac/-rc to modify the job.

'cpuspec' indicates which processors are reserved, and at what priority. It is an error not to include a priority value in the cpuspec.

A reservation job with a priority of '500' will prevent jobs with priorities less than 500, but yields to jobs higher than 500k. Including the 'k' flag in your reservation will also bump any renderings that are running on your machine that are lower than 500 priority. See Priority Description for more info on how rush priorities work.

As an example of reserving cpus on your workstation, let's assume you sit at a dual proc workstation called 'tahoe':

  • To reserve both processors of your dual proc workstation at a priority of '500', use:

    % rush -reserve tahoe=2@500k     # Reserve both cpus at 500k priority

  • To submit a job that actually renders on your own workstation, just submit with a cpu specification that requests your workstation at a priority higher than your reservation, with the 'kill' flag, e.g.:

    tahoe=1@510k         # Request one cpu on tahoe

  • To get both cpus, just request both as you normally would:

    tahoe=2@510k         # Request both cpus on tahoe

  • To remove the reservation for your machine, simply dump the reservation job.

  • To prevent all jobs from rendering on your workstation-- even your own-- make your reservation at a priority of 999. Or, just use 'rush -offline' and/or 'rush -getoff'.

The optional 'ram value' allows one to reserve an amount of ram per processor. This is useful on multiproc machines where you want to prevent large jobs from rendering on the few processors left unreserved. Increasing the ram value you reserve will decrease the size of jobs rush will allow to run on the unused processors.

If 'cpuspec' doesn't include the number of processors, one processor is assumed. If 'ramval' is unspecified, a value of '1' is assumed.

rush -reserve tahoe@998 # Reserve 1 cpu on tahoe@998
rush -reserve tahoe=2@998 128    # Reserve 2 cpus @998, 128MB of ram to each
rush -reserve tahoe=2@500 128 # Reserve 2 cpus @500, 128MB of ram to each

rush -reorder
rush -reorder <framerange..> [jobid..]

Reorder Frames.

Reorders frames in the frame list to the new order specified. <framerange> specifies the new order of the frames in the frame list. Several frame ranges can be specified. Unspecified frames are simply left alone.

Changing the order of the framelist affects the order frames are rendered in, since frames are issued from the top of the list, down.

Example-- If you have a job with 10 frames in the frame list that are in normal 1 thru 10 order, you can use 'rush -reorder' to get different orderings, such as these:

rush -reorder 10-1 # becomes 10 9 8 7 6 5 4 3 2 1
rush -reorder 1-10,2 2-10,2      # becomes 1 3 5 7 9   2 4 6 8 10

rush -rf
rush -rf <framerange..> [jobid..]

Remove Frames.

Removes frames from the frame list of the current [specific] job.

rush -rn
rush -rn <hostname|+hostgroup..> [jobid..]

Remove Nevercpus.

Removes Nevercpus for current [specific] job.

rush -rotate
rush -rotate [remotehost|+hostgroup..]

Rotate Daemon Log File

(Administrative) Rotates daemon logs on local [remote] host. Can be used in crontab scripts to rotate logs to parse output.

Logs can be automatically rotated with the LogRotateHour command in the rush.conf file.

Only root and the rush adminuser can use this command.

rush -status
rush -status [-s secs] [-c count] [remotehost|+hostgroup..]

Status Of Host.

(Administrative) 'rush -status' quickly reports the status of jobs and cpus on the local [remote] hosts.

Commonly used as 'rush -status +any'.

Output is intended for other programs to parse and regenerate.

-s secs optionally sets the amount of time to wait for responses from remotes, default is 3.

-c count optionally specifies the number of times to continuously update the report, default is 1. -c 0 creates a continuously (indefinite) updating report.

The output contains several records of information for each host, one record per line. Host records start with an 'h' record, and terminate with a line of '--'.

7 different types of data records are possible. Data record types are defined by the first character in each record line, and can be one of:

    h - hostname header. Leads off records for the specified host.
    d - daemon information. Info about the running daemon.
    j - job information. One line per job.
    p - processor status. One line per processor. 
    C - Cpu status
    M - Memory status
    S - Swap status
    
Each record has its own fields:

    h <hostname>
    d <sequence-id> <daemon> <version> <PID=pid> <online state> <jobs> <busy procs> <total procs>
    j <owner> <jobid> <job title> <job state> <elapsed> <percent done> <percent fail> <# frms busy>
    p <owner> <jobid> <job title> <frame> <priority> <pid> <elapsed>
    C <ncpus> <usr%> <sys%> [<usr%> <sys%> ..]
    M <total mb> <used%>
    S <total mb> <used%>
    

rush -submit
rush -submit [remotehost]

Submit Job

Submits a job to be managed by the local [remote] job server. Optional [remotehost] can be specified, to make the remotehost the job server.

rush -tasklist
rush -tasklist [remotehost]

Task List.

Lists scheduled tasks on local [remote] cpu server. This is the scheduler's sorted list of tasks wanting to run on the host in question.

Tasks are sorted in the order they will be executed; the topmost task is the next one to be rendered.

Tasks that are busy are sorted to the bottom. Tasks that were denied by either the job, or by cpu criteria, are also sorted to the bottom.

Tasks are sorted into 'groups' of the same priority, and will round robin.

For a 'full' version of a tasklist report, use 'rush -tasklistfull'.

rush -title
rush -title <text> [jobid..]

Job Title

Sets title for current [specific] job. For more information, see Title.

rush -trs
rush -trs

Template Render Script

Prints the template render csh script on stdout. This can be redirected to a file, to quickly create a working script, which should then be customized using a text editor.


% rush -trs > render_me 
% chmod +x render_me 
% vi render_me 
		

You will at least need to setup the render commands (the '### YOUR RENDER COMMAND(S) HERE' section) at minimum.

Caveat: the template render script can be modified and customized by the sysadmin via $RUSH_DIR/etc/templates.

rush -try
rush -try <newcount> <framerange..> [jobid..]

Set Try Count

Changes the 'Try' count for the frames specified.

A 'try count' is maintained for each frame in a job's frame list. This value is shown in the 'Try' column of 'rush -lf' reports, and is passed to render scripts via the $RUSH_TRY environment variable.

% rush -lf                     # List Frames to see try counts
STAT FRAME TRY HOSTNAME       PID     START          ELAPSED  NOTES
Done 0001  4   superior       4144    10/04,03:29:10 00:00:18 
Done 0002  4   tahoe          4160    10/04,03:29:30 00:00:16 
Done 0003  4   placid         4163    10/04,03:29:47 00:00:16 
Done 0004  6   huron          4168    10/04,03:30:04 00:00:16 
Done 0005  4   finger         4171    10/04,03:30:21 00:00:16 

% rush -try 0 1-5              # Reset Try count to zero
0001: tries was 4, now 0
0002: tries was 4, now 0
0003: tries was 4, now 0
0004: tries was 6, now 0
0005: tries was 4, now 0

% rush -lf                     # List Frames to see changes
STAT FRAME TRY HOSTNAME       PID     START          ELAPSED  NOTES
Done 0001  0   superior       4144    10/04,03:29:10 00:00:18 
Done 0002  0   tahoe          4160    10/04,03:29:30 00:00:16 
Done 0003  0   placid         4163    10/04,03:29:47 00:00:16 
Done 0004  0   huron          4168    10/04,03:30:04 00:00:16 
Done 0005  0   finger         4171    10/04,03:30:21 00:00:16
		

rush -tss
rush -trs

Template Submit Script.

Prints a template submit script on stdout. This can be redirected to a file, to quickly create a working script, which should then be customized using a text editor.


% rush -tss > submit_me 
% chmod +x submit_me 
% vi submit_me 
		

You will, for instance, need to customize the 'command', 'title', 'cpus' and 'ram' values at minimum.

Caveat: the template submit script can be modified and customized by the sysadmin via $RUSH_DIR/etc/templates.

rush -uping
rush -uping [-c count] [remotehost..]

UDP Ping.

(Administrative) UDP Pings the local [remote] daemon. Useful for checking for UDP packet dropping. Optional '-c' sets the number of udp transmissions sent (and received) with the remote; default is 1.

rush -waitfor
rush -waitfor [-|waitjobid,[..,..]] [jobid]

Wait For Other Jobs

Sets new 'waitfor' jobids for the current [specified] job. See the submit script docs on WaitFor for more info.

Read the examples carefully to avoid confusing jobid(s) to affect with the new jobids for the waitfor command. Remember to separate all 'waitfor' jobids with commas instead of spaces.

CAVEATS

  • Setting 'waitfor' with a new value clears all previous values first.

  • Specifying 'waitfor -' will disable the job from waiting for other jobs.

  • The jobs being waited for must be served by the same machine as the job doing the waiting. (i.e. the waitfor jobids and the job doing waiting must all be on the same jobserver)

To differentiate between the new value of 'waitfor' and the jobid(s) to be affected, the new value of 'waitfor' must be a comma-separated list of jobids with no spaces. Examples:

rush -waitfor - # Disable all waitfor's
rush -waitfor tahoe.37,tahoe.38, # Job waits for 'tahoe.37' and 'tahoe.38' to dump
rush tahoe.40 -waitfor tahoe.37,tahoe.38, # tahoe.40 now waits for 'tahoe.37' and 'tahoe.38' to dump
rush tahoe.40 -waitfor tahoe.37, # tahoe.40 now waits for 'tahoe.37' to dump
# Trailing comma on tahoe.37 is important!

See also, rush -dependon.