Overview:Tractor Blade is the remote execution server process that runs on each renderfarm host. The tractor-blade process on each host tracks basic system health metrics and previously launched Tractor tasks. It determines when it has capacity to accept new work, and then fetches a task definition from the central job queue and launches the specified commands. Tractor Blade then tracks the status of each launched app, there may be several running concurrently, and reports status and results. The Tractor system requires tractor-blade to be running on each compute server in order to distribute work to the farm.Usage:tractor-blade [options]
Options:
Option | Description |
---|---|
--version | show program's version information, then exit. |
-h, --help | show usage summary, then exit. |
--engine=HOST[:port] | hostname[:port] where tractor-engine is running, default is tractor-engine - usually a DNS alias; default port is 80. If this option is not given, then the blade will also look for an environment variable named TRACTOR_ENGINE for a host:port specification. If neither explicit setting is given, then the blade will attempt to resolve the hostname "tractor-engine" through the local nameserver. If that name is not registered then the blade will make an engine discovery broadcast on the LAN to search for an available engine. |
-L BPORT | port on which this blade listens for admin queries, default is 9005; use the value 0 (zero) to let the operating system pick an open port. The blade will regist the given port with the engine. Note that the port must be open through whatever firewall may be present on the blade host, so a fixed value like 9005 is better than a random value when firewalls are in use. A specific local network interface can selected by using '--listen=addr:port' |
--hname=HOSTNAME | alternate name for the blade host, to be registered with the engine, and also sent to peers who may need to connect back. The default is the hostname derived from a reverse look up of the blade's address as seen by the engine. Use the special form --hname=. to cause the blade to use only the blade's own locally derived hostname. |
-v, --verbose | log level INFO and above. |
--debug | log level DEBUG and above. |
--trace | log level TRACE and above. |
--warning | log level WARNING and above, the default. |
-q, --quiet | log level CRITICAL only. |
--log=LOGFILE | tractor-blade activity log file, auto-rotated at 25MB. |
--logrotate=NNN | specifies the log-rotation threshold, in megabytes |
--logconfig=LOGCONFIG | external configuration file for the Python logging-module, which is used internally by the blade for status about itself. Note that output from each Cmd launched by this blade is handled according to the CmdOutputLoggingsetting in blade.config - usually written to a network share. |
--logenv | log the as-launched command line and environment for every command launched by the blade. |
--cmdtee | copy the output of each launched command to the blade's own log, as well as writing to the per-task logs; typically only used for debugging blade actions. |
--zone=ZONE | zone name for 'dirmap' indexing |
--nimby=NAME | restrict jobs that this blade will execute; give a user name to accept only that user's jobs, or '1' to accept any job spooled from this blade's host. |
--slots=SLOTS | max concurrent slot count; overrides the usual Capacity parameterMaxSlots set in blade.config; use '0' to set the slot count to the number of system CPU cores. |
--daemon | (unix only) disconnects the blade process from the controlling terminal session and auto-backgrounds the blade process so it can run as a system daemon. |
--supersede | allows a newly started blade process to gracefully take over from a still-running previous blade. The new blade sends a "drain and exit" message to the old blade, if one is still running on the same port, then it waits for the old one to exit before proceeding to become the new blade service. In drain mode, the old blade stops requesting new work from the engine and then exits when all tasks that it previously launched are complete. |
--profile=NAME | specify a blade profile name from blade.config to use, skipping the usual matching criteria; intended for testing scenarios only. |
--env=ENVFILE | filename of override environment settings for applications (e.g captured from printenv). Note: environment settings are usually defined using named EnvKeys collections in blade.config. |
--pythonhome=PYTHONHOME | sets PYTHONHOME for Python programs launched by Tractor. |
--ld_library_path=LDPATH | sets LD_LIBRARY_PATH for programs launched by Tractor. |
--dyld_framework_path=PATH | sets LD_FRAMEWORK_PATH for programs launched by Tractor. |
--no-sigint | begin task termination attempts with SIGTERM rather than SIGINT when interrupting active tasks (unix only) |
--killdelay=SECS | time in seconds between escalation from SIGNINT to SIGTERM to SIGKILL, when sweeping active subprocesses (unix only) |
--progresslimit=NSECS | throttle percent-done updates, waiting at least NSECS seconds between sends. |
--startupdelay=SECS | delay before proceeding to blade startup actions, after service boot |
--minsleep=MINSLEEP | minimum idle sleep interval, in seconds. |
--maxsleep=MAXSLEEP | max idle sleep interval, in seconds. |