condor_run will not read any input from the terminal while the job executes. If the shell command-line requires input, you must explicitly redirect the input from a file to the command, as illustrated in the example.
You can specify where condor_run should execute the shell command-line with three environment variables:
). It is recommended that
CONDOR_REQUIREMENTS always be enclosed in parenthesis.
If one or more of these environment variables is specified, the job is submitted with:
requirements = $CONDOR_REQUIREMENTS && Arch == $CONDOR_ARCH && \
OpSys == $CONDOR_OPSYS
Otherwise, the job receives the default requirements expression, which requests a machine of the same architecture and operating system of the machine on which condor_run is executed.
All environment variables set when condor_run is executed will be included in the environment of the Condor job.
condor_run will remove the Condor job from the Condor queue and delete its temporary files if it is killed before the Condor job finishes.
condor_run can be used to compile jobs on architectures and operating systems to which the user doesn't have login access. For example:
$ setenv CONDOR_ARCH "SGI" $ setenv CONDOR_OPSYS "IRIX65" $ condor_run "f77 -O -o myprog myprog.f" $ condor_run "make" $ condor_run "condor_compile cc -o myprog.condor myprog.c"
Since condor_run does not read input from the terminal, you must explicitly redirect input from a file to the shell command. For example:
$ condor_run "cat input.dat | myprog > output.dat"
condor_run creates the following temporary files in the user's working directory (replacing ``pid'' with condor_run's process id):
condor_run is intended for submitting simple shell command-lines to Condor. It does not provide the full functionality of condor_submit. We have attempted to make condor_run as robust as possible, but it is possible that it will not correctly handle some possible condor_submit errors or system failures.
condor_run jobs have the same restrictions as other vanilla universe jobs. Specifically, the current working directory of the job must be accessible on the machine where the job runs. This typically means that the job must be submitted from a network file system such as NFS or AFS. Also, since Condor does not manage AFS credentials, permissions must be set to allow unauthenticated processes to access any AFS directories used by the Condor job.
All processes on the command-line will be executed on the machine where Condor runs the job. Condor will not distribute multiple processes of a command-line pipe across multiple machines.
condor_run will use the shell specified in the SHELL environment variable, if one exists. Otherwise, it will use /bin/sh(t)o execute the shell command-line.
By default, condor_run expects perl to be installed in /usr/bin/perl. If perl is installed in another path, you can ask your Condor administrator to edit the path in the condor_run script or explicitly call perl from the command line:
$ perl [path-to-condor]/bin/condor_run "shell-cmd"
condor_run exits with a status value of 0 (zero) upon complete success. The exit status of condor_run will be non-zero upon failure. The exit status in the case of a single error due to a system call will be the error number (errno) of the failed call.
See the Condor Version 6.2.2 Manual for additional notices.