Page tree


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]


--versionshow program's version information, then exit.
-h, --helpshow 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 BPORTport 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=HOSTNAMEalternate 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, --verboselog level INFO and above.
--debuglog level DEBUG and above.
--tracelog level TRACE and above.
--warninglog level WARNING and above, the default.
-q, --quietlog level CRITICAL only.
--log=LOGFILEtractor-blade activity log file, auto-rotated at 25MB.
--logrotate=NNNspecifies the log-rotation threshold, in megabytes
--logconfig=LOGCONFIGexternal 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.
--logenvlog the as-launched command line and environment for every command launched by the blade.
--cmdteecopy 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=ZONEzone name for 'dirmap' indexing
--nimby=NAMErestrict 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=SLOTSmax 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.
--supersedeallows 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=NAMEspecify a blade profile name from blade.config to use, skipping the usual matching criteria; intended for testing scenarios only.
--env=ENVFILEfilename 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=PYTHONHOMEsets PYTHONHOME for Python programs launched by Tractor.
--ld_library_path=LDPATHsets LD_LIBRARY_PATH for programs launched by Tractor.
--dyld_framework_path=PATHsets LD_FRAMEWORK_PATH for programs launched by Tractor.
--no-sigintbegin task termination attempts with SIGTERM rather than SIGINT when interrupting active tasks (unix only)
--killdelay=SECStime in seconds between escalation from SIGNINT to SIGTERM to SIGKILL, when sweeping active subprocesses (unix only)
--progresslimit=NSECSthrottle percent-done updates, waiting at least NSECS seconds between sends.
--startupdelay=SECSdelay before proceeding to blade startup actions, after service boot
--minsleep=MINSLEEPminimum idle sleep interval, in seconds.
--maxsleep=MAXSLEEPmax idle sleep interval, in seconds.