{section: How to adjust the job's environment for the execute machine} Known to work with HTCondor version: 7.0 If you simply need to insert an environment variable, you can do that by putting the following in your configuration file on the execute machine: {code} STARTER_JOB_ENVIRONMENT = "APP1_PATH=/opt/app1 APP2_PATH=/opt/app2" {endcode} If you need to dynamically modify an environment variable, you can do that in a wrapper script around the job. Here is what you would put in the configuration file: {code} USER_JOB_WRAPPER=/path/to/condor_job_wrapper {endcode} Then you would create a file named condor_job_wrapper (or whatever name you choose), make it executable, and put in something like the following: {code} #!/bin/sh # insert /s/std/bin into the PATH export PATH=/s/std/bin:$PATH exec "$@" {endcode} Another way for information from the machine to enter the job environment is to publish the information in the machine {quote: ClassAd} and leave it up to the user to insert it into the job's environment via the $$() mechanism, which substitutes in values from the target {quote: ClassAd}. Example machine configuration: {code} APP1_PATH = "/opt/app1" APP2_PATH = "/opt/app2" STARTD_ATTRS = $(STARTD_ATTRS) APP1_PATH APP2_PATH {endcode} Then the user can insert this information into the job environment by putting the following in the job submit file: {code} environment = "APP1_PATH=$$(APP1_PATH) APP2_PATH=$$(APP2_PATH)" {endcode} If it is expected that the job may run on machines where these attributes of the machine {quote: ClassAd} are not defined, a default value should be specified like this. For example, if it should just be empty when undefined, use this: {code}APP1_PATH=$$(APP1_PATH:){endcode}