1CONDOR_SUBMIT(1)                HTCondor Manual               CONDOR_SUBMIT(1)
2
3
4

NAME

6       condor_submit - HTCondor Manual
7
8       Queue jobs for execution under HTCondor
9
10

SYNOPSIS

12       condor_submit  [-terse  ]  [-verbose  ]  [-unused ] [-file submit_file]
13       [-name schedd_name]  [-remote  schedd_name]  [-addr  <ip:port>]  [-pool
14       pool_name]  [-disable  ] [-password passphrase] [-debug ] [-append com‐
15       mand ...][-batch-name batch_name] [-spool ] [-dump filename] [-interac‐
16       tive  ]  [-factory  ]  [-allow-crlf-script ] [-dry-run ] [-maxjobs num‐
17       ber-of-jobs] [-single-cluster ]  [<submit-variable>=<value>  ]  [submit
18       description file ] [-queue queue_arguments]
19

DESCRIPTION

21       condor_submit  is  the  program for submitting jobs for execution under
22       HTCondor. condor_submit requires one or more  submit  description  com‐
23       mands  to  direct  the  queuing of jobs. These commands may come from a
24       file,   standard input, the command line, or from some  combination  of
25       these.  One submit description may contain specifications for the queu‐
26       ing of many HTCondor jobs at once. A single invocation of condor_submit
27       may cause one or more clusters. A cluster is a set of jobs specified in
28       the submit description between queue    commands  for  which  the  exe‐
29       cutable is not changed. It is advantageous to submit multiple jobs as a
30       single cluster because the schedd uses much less  memory  to  hold  the
31       jobs.
32
33       Multiple  clusters may be specified within a single submit description.
34       Each cluster must specify a single executable.
35
36       The job ClassAd attribute ClusterId identifies a cluster.
37
38       The submit description file argument is the path and file name  of  the
39       submit  description file. If this optional argument is the dash charac‐
40       ter (-), then the commands are taken from standard input. If - is spec‐
41       ified for the submit description file, -verbose is implied; this can be
42       overridden by specifying -terse.
43
44       If no submit description file argument is given, and no -queue argument
45       is given, commands are taken automatically from standard input.
46
47       Note  that submission of jobs from a Windows machine requires a stashed
48       password to allow HTCondor to impersonate the user submitting the  job.
49       To  stash a password, use the condor_store_cred command. See the manual
50       page for details.
51
52       For lengthy lines within the submit description file, the backslash (\)
53       is a line continuation character. Placing the backslash at the end of a
54       line causes the current line's command to be continued  with  the  next
55       line of the file. Submit description files may contain comments. A com‐
56       ment is any line beginning with a pound character (#).
57

OPTIONS

59          -terse Terse output - display JobId ranges only.
60
61          -verbose
62                 Verbose output - display the created job ClassAd
63
64          -unused
65                 As a default, causes no warnings to be issued about  user-de‐
66                 fined  macros  not  being  used within the submit description
67                 file. The meaning reverses (toggles) when  the  configuration
68                 variable WARN_ON_UNUSED_SUBMIT_FILE_MACROS
69                   is  set  to  the  non  default value of False. Printing the
70                 warnings can help identify spelling errors of submit descrip‐
71                 tion file commands. The warnings are sent to stderr.
72
73          -file submit_file
74                 Use  submit_file  as  the  submit  description  file. This is
75                 equivalent to providing submit_file as  an  argument  without
76                 the preceding -file.
77
78          -name schedd_name
79                 Submit  to  the  specified  condor_schedd. Use this option to
80                 submit to a condor_schedd other than the default  local  one.
81                 schedd_name is the value of the Name ClassAd attribute on the
82                 machine where the condor_schedd daemon runs.
83
84          -remote schedd_name
85                 Submit to the specified condor_schedd, spooling all  required
86                 input  files  over the network connection. schedd_name is the
87                 value of the Name ClassAd attribute on the machine where  the
88                 condor_schedd daemon runs. This option is equivalent to using
89                 both -name and -spool.
90
91          -addr <ip:port>
92                 Submit to the condor_schedd at the IP address and port  given
93                 by the sinful string argument <ip:port>.
94
95          -pool pool_name
96                 Look  in  the  specified pool for the condor_schedd to submit
97                 to.  This option is used with -name or -remote.
98
99          -disable
100                 Disable file permission checks when submitting a job for read
101                 permissions on all input files, such as those defined by com‐
102                 mands input   and transfer_input_files  , as  well  as  write
103                 permission to output files, such as a log file defined by log
104                 and output  files  defined  with  output    or  transfer_out‐
105                 put_files  .
106
107          -debug Cause  debugging  information  to be sent to stderr, based on
108                 the value of the configuration variable TOOL_DEBUG.
109
110          -append command
111                 Augment the commands in the submit description file with  the
112                 given command. This command will be considered to immediately
113                 precede the queue command within the submit description file,
114                 and  come  after  all other previous commands. If the command
115                 specifies a queue command, as in the example
116
117                 condor_submit mysubmitfile -append "queue input in A, B, C"
118
119                 then the entire -append command line option and its arguments
120                 are converted to
121
122                 condor_submit mysubmitfile -queue input in A, B, C
123
124                 The  submit  description  file is not modified. Multiple com‐
125                 mands are specified by  using  the  -append  option  multiple
126                 times.  Each  new  command is given in a separate -append op‐
127                 tion. Commands with spaces in them will need to  be  enclosed
128                 in double quote marks.
129
130          -batch-name batch_name
131                 Set  the  batch  name for this submit. The batch name is dis‐
132                 played by condor_q -batch. It is intended for use by users to
133                 give meaningful names to their jobs and to influence how con‐
134                 dor_q groups jobs for display. Use  of  this  argument  takes
135                 precedence over a batch name specified in the submit descrip‐
136                 tion file itself.
137
138          -spool Spool all required input files, job event log, and proxy over
139                 the connection to the condor_schedd. After submission, modify
140                 local copies of the files without affecting  your  jobs.  Any
141                 output  files  for  completed  jobs need to be retrieved with
142                 condor_transfer_data.
143
144          -dump filename
145                 Sends all ClassAds to the specified file, instead of  to  the
146                 condor_schedd.
147
148          -interactive
149                 Indicates  that the user wants to run an interactive shell on
150                 an execute machine in the pool. This is equivalent to  creat‐
151                 ing  a  submit  description  file of a vanilla universe sleep
152                 job, and then running condor_ssh_to_job by hand. Without  any
153                 additional  arguments,  condor_submit  with  the -interactive
154                 flag creates a dummy vanilla universe job that  sleeps,  sub‐
155                 mits it to the local scheduler, waits for the job to run, and
156                 then launches condor_ssh_to_job to run a shell. If  the  user
157                 would  like to run the shell on a machine that matches a par‐
158                 ticular requirements expression, the submit description  file
159                 is  specified,  and it will contain the expression. Note that
160                 all policy expressions specified in  the  submit  description
161                 file are honored, but any executable   or universe   commands
162                 are overwritten to be sleep and vanilla. The job ClassAd  at‐
163                 tribute InteractiveJob is set to True to identify interactive
164                 jobs for condor_startd policy usage.
165
166          -factory
167                 Sends all of the jobs as a late materialization job  factory.
168                 A  job factory consists of a single cluster classad and a di‐
169                 gest containing the submit commands necessary to describe the
170                 differences  between  jobs.  If the Queue statement has item‐
171                 data, then the itemdata will be sent.  Using this  option  is
172                 equivalent to using the max_materialize
173                   submit command.
174
175          -allow-crlf-script
176                 Changes  the  check  for  an  invalid line ending on the exe‐
177                 cutable script's #! line from an ERROR to a WARNING.  The  #!
178                 line  will be ignored by Windows, so it won't matter if it is
179                 invalid; but Unix and Linux will not run a script that has  a
180                 Windows/DOS  line  ending on the first line of the script. So
181                 condor_submit will not allow such a script to be submitted as
182                 the job's executable unless this option is supplied.
183
184          -dry-run file
185                 Parse  the submit description file, sending the resulting job
186                 ClassAd to the file given by file,  but  do  not  submit  the
187                 job(s).  This  permits  observation of the job specification,
188                 and it facilitates debugging the submit description file con‐
189                 tents. If file is -, the output is written to stdout.
190
191          -maxjobs number-of-jobs
192                 If  the total number of jobs specified by the submit descrip‐
193                 tion file is more  than  the  integer  value  given  by  num‐
194                 ber-of-jobs,  then no jobs are submitted for execution and an
195                 error message is generated.  A 0 or negative  value  for  the
196                 number-of-jobs causes no limit to be imposed.
197
198          -single-cluster
199                 If  the  jobs specified by the submit description file causes
200                 more than a single cluster value to be assigned, then no jobs
201                 are  submitted  for  execution and an error message is gener‐
202                 ated.
203
204          <submit-variable>=<value>
205                 Defines a submit command or submit variable with a value, and
206                 parses  it as if it was placed at the beginning of the submit
207                 description file. The submit description file is not changed.
208                 To  correctly  parse the condor_submit command line, this op‐
209                 tion must be specified without white space characters  before
210                 and  after  the equals sign (=), or the entire option must be
211                 surrounded by double quote marks.
212
213          -queue queue_arguments
214                 A command line specification of how many jobs to queue, which
215                 is  only  permitted  if  the submit description file does not
216                 have a queue command. The queue_arguments are the same as may
217                 be  within  a  submit  description  file.  The parsing of the
218                 queue_arguments finishes at the end of the  line  or  when  a
219                 dash character (-) is encountered. Therefore, its best place‐
220                 ment within the command line will be at the end of  the  com‐
221                 mand line.
222
223                 On  a  Unix command line, the shell expands file globs before
224                 parsing occurs.
225

SUBMIT DESCRIPTION FILE COMMANDS

227       Note: more information on submitting HTCondor jobs can be  found  here:
228       Submitting a Job.
229
230       As  of  version  8.5.6,  the condor_submit language supports multi-line
231       values in commands. The syntax is the same as  the  configuration  lan‐
232       guage  (see  more details here: admin-manual/introduction-to-configura‐
233       tion:multi-line values).
234
235       Each submit description file describes one or more clusters of jobs  to
236       be  placed  in  the HTCondor execution pool. All jobs in a cluster must
237       share the same executable, but they may have different input and output
238       files,  and different program arguments. The submit description file is
239       generally the last command-line argument to condor_submit. If the  sub‐
240       mit  description  file argument is omitted, condor_submit will read the
241       submit description from standard input.
242
243       The submit description file must contain at least one  executable  com‐
244       mand and at least one queue command. All of the other commands have de‐
245       fault actions.
246
247       Note that a submit file that contains more than one executable  command
248       will  produce  multiple  clusters when submitted. This is not generally
249       recommended, and is not allowed for submit files that are  run  as  DAG
250       node jobs by condor_dagman.
251
252       The commands which can appear in the submit description file are numer‐
253       ous. They are listed here in alphabetical order by category.
254
255       BASIC COMMANDS
256
257
258          arguments = <argument_list>
259                 List of arguments to be supplied to the executable as part of
260                 the command line.
261
262                 In  the java universe, the first argument must be the name of
263                 the class containing main.
264
265                 There are two permissible formats for  specifying  arguments,
266                 identified as the old syntax and the new syntax. The old syn‐
267                 tax supports white space characters within arguments only  in
268                 special  circumstances; when used, the command line arguments
269                 are represented in the job ClassAd attribute  Args.  The  new
270                 syntax  supports  uniform  quoting  of white space characters
271                 within arguments; when used, the command line  arguments  are
272                 represented in the job ClassAd attribute Arguments.
273
274                 Old Syntax
275
276                 In  the old syntax, individual command line arguments are de‐
277                 limited (separated) by space characters. To  allow  a  double
278                 quote  mark  in  an argument, it is escaped with a backslash;
279                 that is, the two character sequence \" becomes a single  dou‐
280                 ble quote mark within an argument.
281
282                 Further interpretation of the argument string differs depend‐
283                 ing on the operating system. On Windows, the entire  argument
284                 string  is passed verbatim (other than the backslash in front
285                 of double quote marks) to the Windows application. Most  Win‐
286                 dows  applications will allow spaces within an argument value
287                 by surrounding the argument with double quotes marks. In  all
288                 other  cases, there is no further interpretation of the argu‐
289                 ments.
290
291                 Example:
292
293                     arguments = one \"two\" 'three'
294
295                 Produces in Unix vanilla universe:
296
297                     argument 1: one
298                     argument 2: "two"
299                     argument 3: 'three'
300
301                 New Syntax
302
303                 Here are the rules for using the new syntax:
304
305                 1. The entire string representing the command line  arguments
306                    is  surrounded  by  double  quote  marks. This permits the
307                    white space characters of spaces and tabs  to  potentially
308                    be  embedded  within a single argument. Putting the double
309                    quote mark within the arguments is accomplished by  escap‐
310                    ing it with another double quote mark.
311
312                 2. The white space characters of spaces or tabs delimit argu‐
313                    ments.
314
315                 3. To embed white space characters of spaces or tabs within a
316                    single  argument, surround the entire argument with single
317                    quote marks.
318
319                 4. To insert a literal single quote mark, escape it within an
320                    argument already delimited by single quote marks by adding
321                    another single quote mark.
322
323                 Example:
324
325                     arguments = "3 simple arguments"
326
327                 Produces:
328
329                     argument 1: 3
330                     argument 2: simple
331                     argument 3: arguments
332
333                 Another example:
334
335                     arguments = "one 'two with spaces' 3"
336
337                 Produces:
338
339                     argument 1: one
340                     argument 2: two with spaces
341                     argument 3: 3
342
343                 And yet another example:
344
345                     arguments = "one ""two"" 'spacey ''quoted'' argument'"
346
347                 Produces:
348
349                     argument 1: one
350                     argument 2: "two"
351                     argument 3: spacey 'quoted' argument
352
353                 Notice that in the new syntax, the backslash has  no  special
354                 meaning.  This is for the convenience of Windows users.
355
356
357
358
359          environment = <parameter_list>
360                 List of environment variables.
361
362                 There  are  two different formats for specifying the environ‐
363                 ment variables: the old format and the new  format.  The  old
364                 format  is  retained  for  backward-compatibility. It suffers
365                 from a platform-dependent syntax and the inability to  insert
366                 some special characters into the environment.
367
368                 The new syntax for specifying environment values:
369
370                 1. Put  double quote marks around the entire argument string.
371                    This distinguishes the new syntax from the  old.  The  old
372                    syntax  does  not  have  double quote marks around it. Any
373                    literal double quote marks within the string must  be  es‐
374                    caped by repeating the double quote mark.
375
376                 2. Each environment entry has the form
377
378                        <name>=<value>
379
380                 3. Use  white space (space or tab characters) to separate en‐
381                    vironment entries.
382
383                 4. To put any white space in an environment  entry,  surround
384                    the  space and as much of the surrounding entry as desired
385                    with single quote marks.
386
387                 5. To insert a literal single quote mark, repeat  the  single
388                    quote mark anywhere inside of a section surrounded by sin‐
389                    gle quote marks.
390
391                 Example:
392
393                     environment = "one=1 two=""2"" three='spacey ''quoted'' value'"
394
395                 Produces the following environment entries:
396
397                     one=1
398                     two="2"
399                     three=spacey 'quoted' value
400
401                 Under the old syntax, there are no double  quote  marks  sur‐
402                 rounding  the environment specification. Each environment en‐
403                 try remains of the form
404
405                     <name>=<value>
406
407                 Under Unix, list multiple environment entries  by  separating
408                 them  with  a semicolon (;). Under Windows, separate multiple
409                 entries with a vertical bar (|). There is no way to insert  a
410                 literal  semicolon under Unix or a literal vertical bar under
411                 Windows. Note that spaces are accepted, but  rarely  desired,
412                 characters  within  parameter  names and values, because they
413                 are treated as literal characters, not separators or  ignored
414                 white  space.  Place spaces within the parameter list only if
415                 required.
416
417                 A Unix example:
418
419                     environment = one=1;two=2;three="quotes have no 'special' meaning"
420
421                 This produces the following:
422
423                     one=1
424                     two=2
425                     three="quotes have no 'special' meaning"
426
427                 If the environment is set with the  environment  command  and
428                 getenv   is also set, values specified with environment over‐
429                 ride values in the submitter's environment (regardless of the
430                 order of the environment and getenv commands).
431
432
433
434          error = <pathname>
435                 A  path  and  file name used by HTCondor to capture any error
436                 messages the program would normally write to the screen (that
437                 is,  this  file becomes stderr). A path is given with respect
438                 to the file system of the machine on which the job is submit‐
439                 ted.  The  file is written (by the job) in the remote scratch
440                 directory of the machine where the job is executed. When  the
441                 job  exits, the resulting file is transferred back to the ma‐
442                 chine where the job was submitted, and the path  is  utilized
443                 for  file placement.  If you specify a relative path, the fi‐
444                 nal path will be relative to the job's initial working direc‐
445                 tory,  and  HTCondor  will create directories as necessary to
446                 transfer the file.  If not specified, the  default  value  of
447                 /dev/null  is  used  for submission to a Unix machine. If not
448                 specified, error messages are ignored  for  submission  to  a
449                 Windows  machine.  More  than one job should not use the same
450                 error file, since this will cause one job  to  overwrite  the
451                 errors  of  another.  If  HTCondor detects that the error and
452                 output files for a job are the same, it will run the job such
453                 that the output and error data is merged.
454
455
456
457          executable = <pathname>
458                 An  optional  path and a required file name of the executable
459                 file for this job  cluster.  Only  one  executable    command
460                 within  a submit description file is guaranteed to work prop‐
461                 erly.  More than one often works.
462
463                 If no path or a relative path is used,  then  the  executable
464                 file is presumed to be relative to the current working direc‐
465                 tory of the user as the condor_submit command is issued.
466
467
468
469
470
471          batch_name = <batch_name>
472                 Set the batch name for this submit. The batch  name  is  dis‐
473                 played by condor_q -batch. It is intended for use by users to
474                 give meaningful names to their jobs and to influence how con‐
475                 dor_q  groups  jobs  for display. This value in a submit file
476                 can be overridden by specifying the -batch-name  argument  on
477                 the condor_submit command line.
478
479          getenv = <<matchlist> | True | False>
480                 If getenv is set to
481                  True, then condor_submit will copy all of the user's current
482                 shell environment variables at the  time  of  job  submission
483                 into the job ClassAd. The job will therefore execute with the
484                 same set of environment variables that the user had at submit
485                 time.  Defaults  to  False.  A wholesale import of the user's
486                 environment is very likely to lead to problems executing  the
487                 job  on a remote machine unless there is a shared file system
488                 for users' home directories between the access point and exe‐
489                 cute  machine.   So rather than setting getenv to True, it is
490                 much better to set it to a list of environment  variables  to
491                 import.
492
493                 Matchlist  is  a  comma, semicolon or space separated list of
494                 environment variable names and name patterns  that  match  or
495                 reject  names.   Matchlist  members are matched case-insensi‐
496                 tively to each name in the environment and those  that  match
497                 are  imported.  Matchlist  members  can contain * as wildcard
498                 character which matches anything at that  position.   Members
499                 can  have two * characters if one of them is at the end. Mem‐
500                 bers can be prefixed with !  to force a matching  environment
501                 variable  to  not  be  imported.  The order of members in the
502                 Matchlist has no effect on the  result.   getenv  =  true  is
503                 equivalent to getenv = *
504
505                 Prior  to  HTCondor 8.9.7 getenv allows only True or False as
506                 values.
507
508                 Examples:
509
510                     # import everything except PATH and INCLUDE (also path, include and other case-variants)
511                     getenv = !PATH, !INCLUDE
512
513                     # import everything with CUDA in the name
514                     getenv = *cuda*
515
516                     # Import every environment variable that starts with P or Q, except PATH
517                     getenv = !path, P*, Q*
518
519                 If the environment is set with the  environment  command  and
520                 getenv  is  also set, values specified with environment over‐
521                 ride values in the submitter's environment (regardless of the
522                 order of the environment and getenv commands).
523
524
525
526          input = <pathname>
527                 HTCondor assumes that its jobs are long-running, and that the
528                 user will not wait at the terminal for their completion.  Be‐
529                 cause  of  this, the standard files which normally access the
530                 terminal, (stdin, stdout, and stderr), must refer  to  files.
531                 Thus, the file name specified with input   should contain any
532                 keyboard input the program requires (that is, this  file  be‐
533                 comes stdin). A path is given with respect to the file system
534                 of the machine on which the job is  submitted.  The  file  is
535                 transferred  before execution to the remote scratch directory
536                 of the machine where the job is executed. If  not  specified,
537                 the  default  value  of /dev/null is used for submission to a
538                 Unix machine. If not specified, input is ignored for  submis‐
539                 sion to a Windows machine.
540
541                 Note that this command does not refer to the command-line ar‐
542                 guments of the program. The command-line arguments are speci‐
543                 fied by the arguments   command.
544
545
546
547          log = <pathname>
548                 Use  log   to specify a file name where HTCondor will write a
549                 log file of what is happening with this job cluster, called a
550                 job  event  log. For example, HTCondor will place a log entry
551                 into this file when and where the job begins running, when it
552                 transfers files, if the job is evicted, and when the job com‐
553                 pletes. Most users find specifying a log file  to  be  handy;
554                 its  use is recommended. If no log entry is specified, HTCon‐
555                 dor does not create a log for this  cluster.  If  a  relative
556                 path  is specified, it is relative to the current working di‐
557                 rectory as the job is submitted or the directory specified by
558                 submit command initialdir on the access point.
559
560
561
562
563          notification = <Always | Complete | Error | Never>
564                 Owners  of  HTCondor jobs are notified by e-mail when certain
565                 events occur. If defined by Always  or  Complete,  the  owner
566                 will  be  notified when the job terminates. If defined by Er‐
567                 ror, the owner will only be notified if  the  job  terminates
568                 abnormally, (as defined by JobSuccessExitCode, if defined) or
569                 if the job is placed on hold because of a failure, and not by
570                 user  request.  If  defined by Never (the default), the owner
571                 will not receive e-mail, regardless to what  happens  to  the
572                 job. The HTCondor User's manual documents statistics included
573                 in the e-mail.
574
575
576
577          notify_user = <email-address>
578                 Used to specify the e-mail address to use when HTCondor sends
579                 e-mail  about  a  job. If not specified, HTCondor defaults to
580                 using the e-mail address defined by
581
582                     job-owner@UID_DOMAIN
583
584                 where the configuration variable UID_DOMAIN
585                   is specified by the HTCondor site administrator. If UID_DO‐
586                 MAIN   has not been specified, HTCondor sends the e-mail to:
587
588                     job-owner@submit-machine-name
589
590
591
592          output = <pathname>
593                 The  output   file captures any information the program would
594                 ordinarily write to the screen (that is,  this  file  becomes
595                 stdout).  A  path is given with respect to the file system of
596                 the machine on which the job is submitted. The file is  writ‐
597                 ten  (by  the job) in the remote scratch directory of the ma‐
598                 chine where the job is executed. When the job exits, the  re‐
599                 sulting file is transferred back to the machine where the job
600                 was submitted, and the path is utilized for  file  placement.
601                 If  you specify a relative path, the final path will be rela‐
602                 tive to the job's initial  working  directory,  and  HTCondor
603                 will  create  directories  as necessary to transfer the file.
604                 If not specified, the default value of /dev/null is used  for
605                 submission to a Unix machine. If not specified, output is ig‐
606                 nored for submission to  a  Windows  machine.  Multiple  jobs
607                 should  not  use  the same output file, since this will cause
608                 one job to overwrite the output of another. If  HTCondor  de‐
609                 tects that the error and output files for a job are the same,
610                 it will run the job such that the output and  error  data  is
611                 merged.
612
613                 Note that if a program explicitly opens and writes to a file,
614                 that file should not be specified as the output   file.
615
616
617
618          priority = <integer>
619                 An HTCondor job priority can be any integer, with 0 being the
620                 default.  Jobs with higher numerical priority will run before
621                 jobs with lower numerical priority. Note that  this  priority
622                 is  on a per user basis. One user with many jobs may use this
623                 command to order his/her own jobs, and this will have no  ef‐
624                 fect  on  whether or not these jobs will run ahead of another
625                 user's jobs.
626
627                 Note that the priority setting in  an  HTCondor  submit  file
628                 will  be  overridden  by  condor_dagman if the submit file is
629                 used for a node in a DAG, and the priority of the node within
630                 the  DAG is non-zero (see  automated-workflows/dagman-priori‐
631                 ties:Setting Priorities for Nodes for more details).
632
633
634
635          queue [<int expr> ]
636                 Places zero or more copies  of  the  job  into  the  HTCondor
637                 queue.
638
639          queue  [<int expr> ] [<varname> ] in [slice ] <list of items> Places
640                 zero or more copies of the job in the queue based on items in
641                 a <list of items>
642
643          queue  [<int  expr> ] [<varname> ] matching [files | dirs ] [slice ]
644                 <list of items with  file  globbing>]  Places  zero  or  more
645                 copies  of  the  job in the queue based on files that match a
646                 <list of items with file globbing>
647
648          queue  [<int expr> ] [<list of varnames> ] from [slice ] <file name>
649                 |  <list  of items>] Places zero or more copies of the job in
650                 the queue based on lines from the submit file or  from  <file
651                 name>
652
653                 The  optional argument <int expr> specifies how many times to
654                 repeat the job submission for a given set  of  arguments.  It
655                 may be an integer or an expression that evaluates to an inte‐
656                 ger, and it defaults to 1. All but the  first  form  of  this
657                 command  are various ways of specifying a list of items. When
658                 these forms are used <int expr> jobs will be queued for  each
659                 item in the list. The in, matching and from keyword indicates
660                 how the list will be specified.
661
662in The list of items is an explicit comma and/or space sep‐
663                   arated  <list of items>. If the <list of items> begins with
664                   an open paren, and the close paren is not on the same  line
665                   as  the open, then the list continues until a line that be‐
666                   gins with a close paren is read from the submit file.
667
668matching Each item in the <list of items  with  file  glob‐
669                   bing> will be matched against the names of files and direc‐
670                   tories relative to the current directory, the set of match‐
671                   ing names is the resulting list of items.
672
673files Only filenames will matched.
674
675dirs Only directory names will be matched.
676
677from  <file  name>  |  <list of items> Each line from <file
678                   name> or <list of items> is a single item, this allows  for
679                   multiple  variables  to  be  set  for each item. Lines from
680                   <file name> or <list of  items>  will  be  split  on  comma
681                   and/or  space  until there are values for each of the vari‐
682                   ables specified in <list of varnames>.  The  last  variable
683                   will  contain  the remainder of the line. When the <list of
684                   items> form is used, the list  continues  until  the  first
685                   line  that  begins  with a close paren, and lines beginning
686                   with pound sign ('#') will  be  skipped.   When  using  the
687                   <file  name>  form, if the <file name> ends with |, then it
688                   will be executed as a script whatever the script writes  to
689                   stdout will be the list of items.
690
691                 The  optional argument <varname> or <list of varnames> is the
692                 name or names of of variables that will be set to  the  value
693                 of  the current item when queuing the job. If no <varname> is
694                 specified the variable ITEM will be used. Leading and  trail‐
695                 ing whitespace be trimmed. The optional argument <slice> is a
696                 python style slice selecting only some of the  items  in  the
697                 list of items. Negative step values are not supported.
698
699                 A  submit  file  may contain more than one queue   statement,
700                 and if desired, any commands may be placed between subsequent
701                 queue    commands,  such  as  new input  , output  , error  ,
702                 initialdir  , or arguments   commands.  This  is  handy  when
703                 submitting multiple runs into one cluster with one submit de‐
704                 scription file.
705
706
707
708          universe = <vanilla | scheduler | local | grid | java | vm |  paral‐
709          lel | docker>
710                 Specifies  which  HTCondor  universe to use when running this
711                 job. The HTCondor universe specifies  an  HTCondor  execution
712                 environment.
713
714                 The vanilla universe is the default (except where the config‐
715                 uration variable DEFAULT_UNIVERSE
716                   defines it otherwise).
717
718                 The scheduler universe is for a job that is to run on the ma‐
719                 chine  where  the job is submitted. This universe is intended
720                 for a job that acts as a metascheduler and will not  be  pre‐
721                 empted.
722
723                 The local universe is for a job that is to run on the machine
724                 where the job is submitted. This universe runs the job  imme‐
725                 diately and will not preempt the job.
726
727                 The grid universe forwards the job to an external job manage‐
728                 ment system. Further specification of the  grid  universe  is
729                 done with the grid_resource command.
730
731                 The java universe is for programs written to the Java Virtual
732                 Machine.
733
734                 The vm universe facilitates the execution of  a  virtual  ma‐
735                 chine.
736
737                 The  parallel  universe  is for parallel jobs (e.g. MPI) that
738                 require multiple machines in order to run.
739
740                 The docker universe runs a docker container  as  an  HTCondor
741                 job.
742
743
744
745          max_materialize = <limit>
746                 Submit  jobs  as  a late materialization factory and instruct
747                 the condor_schedd to keep the given number of jobs  material‐
748                 ized.   Use  this  option  to  reduce  the  load  on the con‐
749                 dor_schedd when submitting a large number of jobs.  The limit
750                 can  be  an  expression but it must evaluate to a constant at
751                 submit time.  A limit less than 1 will be treated  as  unlim‐
752                 ited.   The condor_schedd can be configured to have a materi‐
753                 alization limit as well, the lower of the two limits will  be
754                 used.  (see  users-manual/submitting-a-job:submitting lots of
755                 jobs for more details).
756
757
758
759          max_idle = <limit>
760                 Submit jobs as a late materialization  factory  and  instruct
761                 the  condor_schedd  to  keep  the given number of non-running
762                 jobs materialized.  Use this option to reduce the load on the
763                 condor_schedd  when  submitting  a large number of jobs.  The
764                 limit may be an expression but it must evaluate to a constant
765                 at  submit time.  Jobs in the Held state are considered to be
766                 Idle for this limit.  A limit of less  than  1  will  prevent
767                 jobs  from being materialized although the factory will still
768                 be submitted to the condor_schedd.   (see   users-manual/sub‐
769                 mitting-a-job:submitting lots of jobs for more details).
770
771       COMMANDS FOR MATCHMAKING
772
773
774          rank = <ClassAd Float Expression>
775                 A  ClassAd  Floating-Point expression that states how to rank
776                 machines which have already met the requirements  expression.
777                 Essentially,  rank  expresses  preference.  A  higher numeric
778                 value equals better rank. HTCondor will give the job the  ma‐
779                 chine with the highest rank.  For example,
780
781                     request_memory = max({60, Target.TotalSlotMemory})
782                     rank = Memory
783
784                 asks  HTCondor  to find all available machines with more than
785                 60 megabytes of memory and give to the job the  machine  with
786                 the  most  amount  of memory. The HTCondor User's Manual con‐
787                 tains complete information on the syntax  and  available  at‐
788                 tributes that can be used in the ClassAd expression.
789
790
791
792          request_cpus = <num-cpus>
793                 A  requested  number  of  CPUs (cores). If not specified, the
794                 number requested will be 1. If specified, the expression
795
796                     && (RequestCpus <= Target.Cpus)
797
798                 is appended to the requirements expression for the job.
799
800                 For pools that  enable  dynamic  condor_startd  provisioning,
801                 specifies  the minimum number of CPUs requested for this job,
802                 resulting in a dynamic slot  being  created  with  this  many
803                 cores.
804
805
806
807          request_disk = <quantity>
808                 The  requested amount of disk space in KiB requested for this
809                 job. If not specified, it will be set to the job ClassAd  at‐
810                 tribute DiskUsage. The expression
811
812                     && (RequestDisk <= Target.Disk)
813
814                 is appended to the requirements expression for the job.
815
816                 For  pools  that enable dynamic condor_startd provisioning, a
817                 dynamic slot will be created with at  least  this  much  disk
818                 space.
819
820                 Characters  may  be appended to a numerical value to indicate
821                 units.  K or KB indicates KiB, 210 numbers of bytes. M or  MB
822                 indicates  MiB,  220 numbers of bytes. G or GB indicates GiB,
823                 230 numbers of bytes. T or TB indicates TiB, 240  numbers  of
824                 bytes.
825
826
827
828          request_gpus = <num-gpus>
829                 A requested number of GPUs. If not specified, no GPUs will be
830                 requested.  If specified and require_gpus is not also  speci‐
831                 fied, the expression
832
833                     && (Target.GPUs >= RequestGPUs)
834
835                 is appended to the requirements expression for the job.
836
837                 For  pools  that  enable  dynamic condor_startd provisioning,
838                 specifies the minimum number of GPUs requested for this  job,
839                 resulting  in  a  dynamic  slot  being created with this many
840                 GPUs.
841
842
843
844          require_gpus = <constraint-expression>
845                 A constraint on the properties  of  GPUs  when  used  with  a
846                 non-zero request_gpus value.  If not specified, no constraint
847                 on GPUs will be added to  the  job.   If  specified  and  re‐
848                 quest_gpus is non-zero, the expression
849
850                     && (countMatches(MY.RequireGPUs, TARGET.AvailableGPUs) >= RequestGPUs)
851
852                 is appended to the requirements expression for the job.  This
853                 expression cannot be evaluated by HTCondor prior  to  version
854                 9.8.0.  A  warning  to  this will effect will be printed when
855                 condor_submit detects this condition.
856
857                 For pools that enable dynamic condor_startd provisioning  and
858                 are  at  least  version  9.8.0, the constraint will be tested
859                 against the properties of AvailableGPUs and only  those  that
860                 match will be assigned to the dynamic slot.
861
862
863
864          request_memory = <quantity>
865                 The  required  amount of memory in MiB that this job needs to
866                 avoid excessive swapping. If not  specified  and  the  submit
867                 command  vm_memory    is  specified, then the value specified
868                 for vm_memory   defines request_memory   .   If  neither  re‐
869                 quest_memory  nor  vm_memory   is specified, the value is set
870                 by the configuration variable JOB_DEFAULT_REQUESTMEMORY
871                  . The actual amount of memory used by a job  is  represented
872                 by the job ClassAd attribute MemoryUsage.
873
874                 For  pools  that enable dynamic condor_startd provisioning, a
875                 dynamic slot will be created with at least this much RAM.
876
877                 The expression
878
879                     && (RequestMemory <= Target.Memory)
880
881                 is appended to the requirements expression for the job.
882
883                 Characters may be appended to a numerical value  to  indicate
884                 units.   K or KB indicates KiB, 210 numbers of bytes. M or MB
885                 indicates MiB, 220 numbers of bytes. G or GB  indicates  GiB,
886                 230  numbers  of bytes. T or TB indicates TiB, 240 numbers of
887                 bytes.
888
889
890
891
892
893          request_<name> = <quantity>
894                 The required amount of the custom machine resource identified
895                 by <name> that this job needs. The custom machine resource is
896                 defined in the machine's configuration.  Machines  that  have
897                 available GPUs will define <name> to be GPUs.  <name> must be
898                 at least two characters, and  must  not  begin  with  _.   If
899                 <name>  is  either Cpu or Gpu a warning will be printed since
900                 these are common typos.
901
902
903
904          cuda_version = <version>
905                 The version of the CUDA runtime, if any, used or required  by
906                 this  job,  specified  as <major>.<minor> (for example, 9.1).
907                 If the minor version number is zero, you may specify only the
908                 major  version  number.   A  single version number of 1000 or
909                 higher is assumed to be the integer-coded version number (ma‐
910                 jor * 1000 + (minor % 100)).
911
912                 This  does  not  arrange  for the CUDA runtime to be present,
913                 only for the job to run on a machine  whose  driver  supports
914                 the specified version.
915
916
917
918          requirements = <ClassAd Boolean Expression>
919                 The  requirements  command  is  a  boolean ClassAd expression
920                 which uses C-like operators. In order for  any  job  in  this
921                 cluster  to run on a given machine, this requirements expres‐
922                 sion must evaluate to true on the given machine.
923
924                 For scheduler and local universe jobs, the  requirements  ex‐
925                 pression  is  evaluated  against  the Scheduler ClassAd which
926                 represents the the condor_schedd daemon running on the access
927                 point, rather than a remote machine. Like all commands in the
928                 submit description file, if  multiple  requirements  commands
929                 are  present,  all  but the last one are ignored. By default,
930                 condor_submit appends the following clauses to  the  require‐
931                 ments expression:
932
933                 1. Arch  and OpSys are set equal to the Arch and OpSys of the
934                    submit machine. In other words: unless you request  other‐
935                    wise,  HTCondor  will give your job machines with the same
936                    architecture and operating system version as  the  machine
937                    running condor_submit.
938
939                 2. Cpus  >=  RequestCpus,  if  the  job ClassAd attribute Re‐
940                    questCpus is defined.
941
942                 3. Disk >= RequestDisk, if the job ClassAd attribute Request‐
943                    Disk  is defined. Otherwise, Disk >= DiskUsage is appended
944                    to the requirements. The DiskUsage attribute  is  initial‐
945                    ized  to  the  size of the executable plus the size of any
946                    files specified in a transfer_input_files command. It  ex‐
947                    ists  to  ensure  there is enough disk space on the target
948                    machine for HTCondor to copy over both the executable  and
949                    needed input files. The DiskUsage attribute represents the
950                    maximum amount of total disk space required by the job  in
951                    kilobytes.  HTCondor  automatically  updates the DiskUsage
952                    attribute approximately every 20  minutes  while  the  job
953                    runs with the amount of space being used by the job on the
954                    execute machine.
955
956                 4. Memory >= RequestMemory, if the job ClassAd attribute  Re‐
957                    questMemory is defined.
958
959                 5. If  Universe  is  set  to Vanilla, FileSystemDomain is set
960                    equal to the access point's FileSystemDomain.
961
962                 View the requirements of a job which has already been submit‐
963                 ted  (along  with everything else about the job ClassAd) with
964                 the command  condor_q  -l;  see  the  command  reference  for
965                 condor_q.   Also,  see the HTCondor Users Manual for complete
966                 information on the syntax and available attributes  that  can
967                 be used in the ClassAd expression.
968
969       FILE TRANSFER COMMANDS
970
971
972
973          dont_encrypt_input_files = < file1,file2,file... >
974                 A  comma  and/or space separated list of input files that are
975                 not to be network encrypted when transferred  with  the  file
976                 transfer  mechanism.  Specification  of  files in this manner
977                 overrides configuration that would use encryption. Each input
978                 file  must  also be in the list given by transfer_input_files
979                 .  When a path to an input file or  directory  is  specified,
980                 this  specifies  the  path  to the file on the submit side. A
981                 single wild card character (*) may be used in each file name.
982
983
984
985
986          dont_encrypt_output_files = < file1,file2,file... >
987                 A comma and/or space separated list of output files that  are
988                 not  to  be  network encrypted when transferred back with the
989                 file transfer mechanism. Specification of files in this  man‐
990                 ner  overrides  configuration  that would use encryption. The
991                 output file(s) must also either  be  in  the  list  given  by
992                 transfer_output_files  or be discovered and to be transferred
993                 back with the file transfer mechanism. When a path to an out‐
994                 put  file  or directory is specified, this specifies the path
995                 to the file on the execute side. A single wild card character
996                 (*) may be used in each file name.
997
998
999
1000          encrypt_execute_directory = <True | False>
1001                 Defaults  to False. If set to True, HTCondor will encrypt the
1002                 contents of the remote scratch directory of the machine where
1003                 the  job  is  executed. This encryption is transparent to the
1004                 job itself, but ensures that files left behind on  the  local
1005                 disk  of  the execute machine, perhaps due to a system crash,
1006                 will remain private. In addition, condor_submit  will  append
1007                 to the job's requirements expression
1008
1009                     && (TARGET.HasEncryptExecuteDirectory)
1010
1011                 to  ensure the job is matched to a machine that is capable of
1012                 encrypting the contents of the execute directory.  This  sup‐
1013                 port  is  limited to Windows platforms that use the NTFS file
1014                 system and Linux platforms with  the  ecryptfs-utils  package
1015                 installed.
1016
1017
1018
1019
1020          encrypt_input_files = < file1,file2,file... >
1021                 A  comma  and/or space separated list of input files that are
1022                 to be network encrypted when transferred with the file trans‐
1023                 fer  mechanism.   Specification of files in this manner over‐
1024                 rides configuration that would not use encryption. Each input
1025                 file  must  also be in the list given by transfer_input_files
1026                 .  When a path to an input file or  directory  is  specified,
1027                 this  specifies  the  path  to the file on the submit side. A
1028                 single wild card character (*) may be used in each file name.
1029                 The  method  of encryption utilized will be as agreed upon in
1030                 security negotiation; if that negotiation  failed,  then  the
1031                 file  transfer  mechanism must also fail for files to be net‐
1032                 work encrypted.
1033
1034
1035
1036
1037          encrypt_output_files = < file1,file2,file... >
1038                 A comma and/or space separated list of output files that  are
1039                 to  be  network encrypted when transferred back with the file
1040                 transfer mechanism. Specification of  files  in  this  manner
1041                 overrides  configuration  that  would not use encryption. The
1042                 output file(s) must also either  be  in  the  list  given  by
1043                 transfer_output_files  or be discovered and to be transferred
1044                 back with the file transfer mechanism. When a path to an out‐
1045                 put  file  or directory is specified, this specifies the path
1046                 to the file on the execute side. A single wild card character
1047                 (*)  may  be used in each file name. The method of encryption
1048                 utilized will be as agreed upon in security  negotiation;  if
1049                 that  negotiation  failed,  then  the file transfer mechanism
1050                 must also fail for files to be network encrypted.
1051
1052
1053
1054          erase_output_and_error_on_restart
1055                 If false, and  when_to_transfer_output  is  ON_EXIT_OR_EVICT,
1056                 HTCondor will append to the output and error logs rather than
1057                 erase (truncate) them when the job restarts.
1058
1059
1060
1061          max_transfer_input_mb = <ClassAd Integer Expression>
1062                 This integer expression specifies the maximum  allowed  total
1063                 size  in  MiB  of  the input files that are transferred for a
1064                 job. This expression does not apply to grid universe or files
1065                 transferred  via  file  transfer plug-ins. The expression may
1066                 refer to attributes of the job. The special  value  -1  indi‐
1067                 cates  no  limit. If not defined, the value set by configura‐
1068                 tion variable MAX_TRANSFER_INPUT_MB   is  used.  If  the  ob‐
1069                 served  size of all input files at submit time is larger than
1070                 the limit, the job will be immediately placed on hold with  a
1071                 HoldReasonCode  value  of  32. If the job passes this initial
1072                 test, but the size of the input files increases or the  limit
1073                 decreases  so  that  the  limit  is violated, the job will be
1074                 placed on hold at the time when  the  file  transfer  is  at‐
1075                 tempted.
1076
1077
1078
1079          max_transfer_output_mb = <ClassAd Integer Expression>
1080                 This  integer  expression specifies the maximum allowed total
1081                 size in MiB of the output files that are  transferred  for  a
1082                 job. This expression does not apply to grid universe or files
1083                 transferred via file transfer plug-ins.  The  expression  may
1084                 refer  to  attributes  of the job. The special value -1 indi‐
1085                 cates no limit. If not set, the value  set  by  configuration
1086                 variable  MAX_TRANSFER_OUTPUT_MB   is used. If the total size
1087                 of the job's output files to be transferred  is  larger  than
1088                 the  limit, the job will be placed on hold with a HoldReason‐
1089                 Code value of 33. The output will be transferred  up  to  the
1090                 point  when  the  limit  is  hit,  so some files may be fully
1091                 transferred, some partially, and some not at all.
1092
1093
1094
1095
1096          output_destination = <destination-URL>
1097                 When present, defines a URL that specifies both a plug-in and
1098                 a  destination  for the transfer of the entire output sandbox
1099                 or a subset of output files as specified by the  submit  com‐
1100                 mand  transfer_output_files  .  The plug-in does the transfer
1101                 of files, and no files are sent back to the access point. The
1102                 HTCondor Administrator's manual has full details.
1103
1104
1105
1106          should_transfer_files = <YES | NO | IF_NEEDED >
1107                 The should_transfer_files setting is used to define if HTCon‐
1108                 dor should transfer files to  and  from  the  remote  machine
1109                 where  the  job runs.  The file transfer mechanism is used to
1110                 run jobs on machines which do not have a shared  file  system
1111                 with  the submit machine.  should_transfer_files equal to YES
1112                 will cause HTCondor to always transfer files for the job.  NO
1113                 disables  HTCondor's  file transfer mechanism. IF_NEEDED will
1114                 not transfer files for the job if it is matched  with  a  re‐
1115                 source  in the same FileSystemDomain as the access point (and
1116                 therefore, on a machine with the same shared file system). If
1117                 the  job  is  matched  with  a remote resource in a different
1118                 FileSystemDomain, HTCondor will transfer the necessary files.
1119
1120                 For more information about this and other settings related to
1121                 transferring files, see the HTCondor User's manual section on
1122                 the file transfer mechanism.
1123
1124                 Note that should_transfer_files is  not  supported  for  jobs
1125                 submitted to the grid universe.
1126
1127
1128
1129          skip_filechecks = <True | False>
1130                 When  True,  file permission checks for the submitted job are
1131                 disabled. When False, file permissions are checked;  this  is
1132                 the  behavior  when this command is not present in the submit
1133                 description file. File permissions are checked for read  per‐
1134                 missions  on  all  input files, such as those defined by com‐
1135                 mands input   and transfer_input_files  , and for write  per‐
1136                 mission  to  output  files, such as a log file defined by log
1137                 and output  files  defined  with  output    or  transfer_out‐
1138                 put_files  .
1139
1140
1141
1142          stream_error = <True | False>
1143                 If  True,  then  stderr  is streamed back to the machine from
1144                 which the job was submitted. If False, stderr is  stored  lo‐
1145                 cally  and transferred back when the job completes. This com‐
1146                 mand is ignored if the job ClassAd attribute  TransferErr  is
1147                 False.  The default value is False. This command must be used
1148                 in conjunction with error  , otherwise stderr  will  sent  to
1149                 /dev/null on Unix machines and ignored on Windows machines.
1150
1151
1152
1153          stream_input = <True | False>
1154                 If True, then stdin is streamed from the machine on which the
1155                 job was submitted. The default value is False. The command is
1156                 only  relevant for jobs submitted to the vanilla or java uni‐
1157                 verses, and it is ignored by the grid universe. This  command
1158                 must  be  used  in  conjunction with input  , otherwise stdin
1159                 will be /dev/null on Unix machines and ignored on Windows ma‐
1160                 chines.
1161
1162
1163
1164          stream_output = <True | False>
1165                 If  True,  then  stdout  is streamed back to the machine from
1166                 which the job was submitted. If False, stdout is  stored  lo‐
1167                 cally  and transferred back when the job completes. This com‐
1168                 mand is ignored if the job ClassAd attribute  TransferOut  is
1169                 False.  The default value is False. This command must be used
1170                 in conjunction with output  , otherwise stdout will  sent  to
1171                 /dev/null on Unix machines and ignored on Windows machines.
1172
1173
1174
1175          transfer_executable = <True | False>
1176                 This  command is applicable to jobs submitted to the grid and
1177                 vanilla universes. If transfer_executable is  set  to  False,
1178                 then HTCondor looks for the executable on the remote machine,
1179                 and does not transfer the executable over. This is useful for
1180                 an  already pre-staged executable; HTCondor behaves more like
1181                 rsh. The default value is True.
1182
1183
1184
1185          transfer_input_files = < file1,file2,file... >
1186                 A comma-delimited list of all the files and directories to be
1187                 transferred  into  the  working directory for the job, before
1188                 the job is started. By default, the file specified in the ex‐
1189                 ecutable   command and any file specified in the input   com‐
1190                 mand (for example, stdin) are transferred.
1191
1192                 When a path to an input file or directory is specified,  this
1193                 specifies  the  path to the file on the submit side. The file
1194                 is placed in the job's temporary scratch directory on the ex‐
1195                 ecute side, and it is named using the base name of the origi‐
1196                 nal path. For example, /path/to/input_file becomes input_file
1197                 in the job's scratch directory.
1198
1199                 When  a  directory  is  specified,  the  behavior  depends on
1200                 whether there is a trailing path separator character.  When a
1201                 directory  is specified with a trailing path separator, it is
1202                 as if each of the items within the directory were  listed  in
1203                 the  transfer list.  Therefore, the contents are transferred,
1204                 but the directory itself is not. When there  is  no  trailing
1205                 path  separator, the directory itself is transferred with all
1206                 of its contents inside it.   On  platforms  such  as  Windows
1207                 where the path separator is not a forward slash (/), a trail‐
1208                 ing forward slash is treated as equivalent to a trailing path
1209                 separator.  An example of an input directory specified with a
1210                 trailing forward slash is input_data/.
1211
1212                 For grid universe jobs other than HTCondor-C, the transfer of
1213                 directories is not currently supported.
1214
1215                 Symbolic  links  to  files  are transferred as the files they
1216                 point to.  Transfer of symbolic links to directories  is  not
1217                 currently supported.
1218
1219                 For  vanilla  and vm universe jobs only, a file may be speci‐
1220                 fied by giving a URL, instead of a file name. The implementa‐
1221                 tion for URL transfers requires both configuration and avail‐
1222                 able plug-in.
1223
1224                 If you have a plugin which handles https:// URLs (and  HTCon‐
1225                 dor ships with one enabled), HTCondor supports pre-signing S3
1226                 URLs.  This allows you to specify S3 URLs for  this  command,
1227                 for  transfer_output_remaps,  and for output_destination.  By
1228                 pre-signing the URLs on  the  submit  node,  HTCondor  avoids
1229                 transferring  your  S3  credentials to the execute node.  You
1230                 must  specify   aws_access_key_id_file   and   aws_secret_ac‐
1231                 cess_key_file;  you may specify aws_region, if necessary; see
1232                 below.  To use the S3 service provided by AWS, use S3 URLs of
1233                 the following forms:
1234
1235                     # For older buckets that aren't region-specific.
1236                     s3://<bucket>/<key>
1237
1238                     # For newer, region-specific buckets.
1239                     s3://<bucket>.s3.<region>.amazonaws.com/<key>
1240
1241                 To use other S3 services, where <host> must contain a .:
1242
1243                     s3://<host>/<key>
1244
1245                     # If necessary
1246                     aws_region = <region>
1247
1248                 You  may  specify  the corresponding access key ID and secret
1249                 access  key  with  s3_access_key_id_file  and   s3_secret_ac‐
1250                 cess_key_file  if  you prefer (which may reduce confusion, if
1251                 you're not using AWS).
1252
1253                 If you must access S3 using temporary  credentials,  you  may
1254                 specify    the    temporary    credentials    using   aws_ac‐
1255                 cess_key_id_file and aws_secret_access_key_file for the files
1256                 containing  the  corresponding  temporary token, and +EC2Ses‐
1257                 sionToken for the file containing the session token.
1258
1259                 Temporary credentials have a limited lifetime.   If  you  are
1260                 using S3 only to download input files, the job must start be‐
1261                 fore the credentials expire.  If you are using S3  to  upload
1262                 output  files, the job must finish before the credentials ex‐
1263                 pire.  HTCondor does not know when the credentials  will  ex‐
1264                 pire;  if  they  do  so before they are needed, file transfer
1265                 will fail.
1266
1267                 HTCondor does not presently support transferring entire buck‐
1268                 ets or directories from S3.
1269
1270                 HTCondor  supports  Google Cloud Storage URLs -- gs:// -- via
1271                 Google's "interoperability" API.  You may specify gs://  URLs
1272                 as  if they were s3:// URLs, and they work the same way.  You
1273                 may specify the corresponding access key ID and secret access
1274                 key  with gs_access_key_id_file and gs_secret_access_key_file
1275                 if you prefer (which may reduce confusion).
1276
1277                 Note that (at present), you may not provide more than one set
1278                 of credentials for s3:// or gs:// file transfer; this implies
1279                 that all such URLs download from or upload to the  same  ser‐
1280                 vice.
1281
1282
1283
1284          transfer_output_files = < file1,file2,file... >
1285                 This  command  forms an explicit list of output files and di‐
1286                 rectories to be transferred back from the  temporary  working
1287                 directory  on  the  execute  machine  to the access point. If
1288                 there are multiple files, they must be delimited with commas.
1289                 Setting  transfer_output_files to the empty string ("") means
1290                 that no files are to be transferred.
1291
1292                 For HTCondor-C jobs and all other non-grid universe jobs,  if
1293                 transfer_output_files  is  not specified, HTCondor will auto‐
1294                 matically transfer back all  files  in  the  job's  temporary
1295                 working  directory which have been modified or created by the
1296                 job.  Subdirectories are not scanned for output, so if output
1297                 from  subdirectories  is desired, the output list must be ex‐
1298                 plicitly specified. For grid universe jobs other than  HTCon‐
1299                 dor-C,  desired  output files must also be explicitly listed.
1300                 Another reason to explicitly list output files is for  a  job
1301                 that  creates  many  files,  and the user wants only a subset
1302                 transferred back.
1303
1304                 For grid universe jobs other than with grid type  condor,  to
1305                 have  files  other  than  standard  output and standard error
1306                 transferred from the  execute  machine  back  to  the  access
1307                 point,  do use transfer_output_files, listing all files to be
1308                 transferred.  These files are found on the execute machine in
1309                 the working directory of the job.
1310
1311                 When  a  path to an output file or directory is specified, it
1312                 specifies the path to the file on the execute side. As a des‐
1313                 tination  on the submit side, the file is placed in the job's
1314                 initial working directory, and it is  named  using  the  base
1315                 name  of the original path.  For example, path/to/output_file
1316                 becomes output_file in the job's initial  working  directory.
1317                 The  name  and path of the file that is written on the submit
1318                 side may be modified by using transfer_output_remaps  .  Note
1319                 that  this  remap function only works with files but not with
1320                 directories.
1321
1322                 When a  directory  is  specified,  the  behavior  depends  on
1323                 whether there is a trailing path separator character.  When a
1324                 directory is specified with a trailing path separator, it  is
1325                 as  if  each of the items within the directory were listed in
1326                 the transfer list.  Therefore, the contents are  transferred,
1327                 but  the  directory  itself is not. When there is no trailing
1328                 path separator, the directory itself is transferred with  all
1329                 of  its  contents  inside  it.   On platforms such as Windows
1330                 where the path separator is not a forward slash (/), a trail‐
1331                 ing forward slash is treated as equivalent to a trailing path
1332                 separator.  An example of an input directory specified with a
1333                 trailing forward slash is input_data/.
1334
1335                 For grid universe jobs other than HTCondor-C, the transfer of
1336                 directories is not currently supported.
1337
1338                 Symbolic links to files are transferred  as  the  files  they
1339                 point  to.   Transfer of symbolic links to directories is not
1340                 currently supported.
1341
1342
1343
1344          transfer_checkpoint_files = < file1,file2,file3... >
1345                 If present, this command defines the list of files and/or di‐
1346                 rectories  which  constitute  the job's checkpoint.  When the
1347                 job successfully checkpoints -- see  checkpoint_exit_code  --
1348                 these files will be transferred to the submit node's spool.
1349
1350                 If this command is absent, the output is transferred instead.
1351
1352                 If  no  files  or  directories are specified, nothing will be
1353                 transferred.  This is generally not useful.
1354
1355                 The list is interpreted like transfer_output_files, but there
1356                 is no corresponding remaps command.
1357
1358
1359
1360          preserve_relative_paths = < True | False >
1361                 For  vanilla  and  Docker -universe jobs (and others that use
1362                 the shadow), this command modifies the behavior of  the  file
1363                 transfer  commands.  When set to true, the destination for an
1364                 entry that is a relative path in a file transfer list becomes
1365                 its  relative  path,  not  its  basename.   For  example, in‐
1366                 put_data/b (and its contents, if it is a directory)  will  be
1367                 transferred  to input_data/b, not b.  This applies to the in‐
1368                 put, output, and checkpoint lists.
1369
1370                 Trailing slashes are ignored when preserve_relative_paths  is
1371                 set.
1372
1373
1374
1375          transfer_output_remaps  =  < " name = newname ; name2 = newname2 ...
1376          ">
1377                 This specifies the name (and optionally  path)  to  use  when
1378                 downloading  output  files  from the completed job. Normally,
1379                 output files are transferred back to the initial working  di‐
1380                 rectory  with  the same name they had in the execution direc‐
1381                 tory. This gives you the option to save them with a different
1382                 path  or name. If you specify a relative path, the final path
1383                 will be relative to the job's initial working directory,  and
1384                 HTCondor will create directories as necessary to transfer the
1385                 file.
1386
1387                 name describes an output file name produced by your job,  and
1388                 newname  describes  the file name it should be downloaded to.
1389                 Multiple remaps can be specified by separating  each  with  a
1390                 semicolon.  If  you  wish  to  remap  file names that contain
1391                 equals signs or semicolons, these special characters  may  be
1392                 escaped  with  a backslash. You cannot specify directories to
1393                 be remapped.
1394
1395                 Note that whether an output file is transferred is controlled
1396                 by  transfer_output_files.  Listing  a  file in transfer_out‐
1397                 put_remaps is not sufficient to cause it to be transferred.
1398
1399
1400
1401          transfer_plugins = < tag=plugin ; tag2,tag3=plugin2 ... >
1402                 Specifies the file transfer plugins (see Additional kinds  of
1403                 file  and  credential  transfer)  that  should be transferred
1404                 along with the input files prior to  invoking  file  transfer
1405                 plugins  for  files  specified  in  transfer_input_files. tag
1406                 should be a URL prefix that is used in  transfer_input_files,
1407                 and  plugin  is  the path to a file transfer plugin that will
1408                 handle that type of URL transfer.
1409
1410
1411
1412          when_to_transfer_output = < ON_EXIT | ON_EXIT_OR_EVICT |  ON_SUCCESS
1413          >
1414                 Setting  when_to_transfer_output to ON_EXIT will cause HTCon‐
1415                 dor to transfer the job's output files back to the submitting
1416                 machine  when the job completes (exits on its own).  If a job
1417                 is evicted and started again, the subsequent  execution  will
1418                 start with only the executable and input files in the scratch
1419                 directory sandbox.  If transfer_output_files is not set,  HT‐
1420                 Condor considers all new files in the sandbox's top-level di‐
1421                 rectory to be the output; subdirectories and  their  contents
1422                 will not be transferred.
1423
1424                 Setting   when_to_transfer_output  to  ON_EXIT_OR_EVICT  will
1425                 cause HTCondor to transfer the job's output  files  when  the
1426                 job completes (exits on its own) and when the job is evicted.
1427                 When the job is evicted, HTCondor will  transfer  the  output
1428                 files to a temporary directory on the submit node (determined
1429                 by the SPOOL configuration variable).  When the job restarts,
1430                 these  files  will be transferred instead of the input files.
1431                 If transfer_output_files is not set, HTCondor  considers  all
1432                 files  in the sandbox's top-level directory to be the output;
1433                 subdirectories and their contents will not be transferred.
1434
1435                 Setting when_to_transfer_output to ON_SUCCESS will cause  HT‐
1436                 Condor  to  transfer the job's output files when the job com‐
1437                 pletes  successfully.   Success  is  defined  by   the   suc‐
1438                 cess_exit_code  command,  which must be set, even if the suc‐
1439                 cessful value is the default 0.  If transfer_output_files  is
1440                 not  set,  HTCondor  considers all new files in the sandbox's
1441                 top-level directory to  be  the  output;  subdirectories  and
1442                 their contents will not be transferred.
1443
1444                 In  all three cases, the job will go on hold if transfer_out‐
1445                 put_files specifies a file which does not exist  at  transfer
1446                 time.
1447
1448
1449
1450
1451          aws_access_key_id_file, s3_access_key_id_file
1452                 One  of  these  commands  is required if you specify an s3://
1453                 URL; they specify the file containing the access key ID  (and
1454                 only  the access key ID) used to pre-sign the URLs.  Use only
1455                 one.
1456
1457
1458
1459
1460          aws_secret_access_key_file, s3_secret_access_key_file
1461                 One of these commands is required if  you  specify  an  s3://
1462                 URL;  they  specify the file containing the secret access key
1463                 (and only the secret access key) used to pre-sign  the  URLs.
1464                 Use only one.
1465
1466
1467
1468          aws_region
1469                 Optional  if  you  specify an S3 URL (and ignored otherwise),
1470                 this command specifies the region to use if one is not speci‐
1471                 fied in the URL.
1472
1473
1474
1475          gs_access_key_id_file
1476                 Required  if you specify a gs:// URLs, this command specifies
1477                 the file containing the access key ID (and  only  the  access
1478                 key ID) used to pre-sign the URLs.
1479
1480
1481
1482          gs_secret_access_key_file
1483                 Required  if you specify a gs:// URLs, this command specifies
1484                 the file containing the secret access key (and only  the  se‐
1485                 cret access key) used to pre-sign the URLs.
1486
1487       POLICY COMMANDS
1488
1489
1490          allowed_execute_duration = <integer>
1491                 The  longest  time  for  which  a job may be executing.  Jobs
1492                 which exceed this duration will go on hold.  This  time  does
1493                 not  include  file-transfer time.  Jobs which self-checkpoint
1494                 have this long to write out each checkpoint.
1495
1496                 This attribute is intended to help minimize the  time  wasted
1497                 by jobs which may erroneously run forever.
1498
1499
1500
1501          allowed_job_duration = <integer>
1502                 The  longest  time for which a job may continuously be in the
1503                 running state.  Jobs which exceed this duration  will  go  on
1504                 hold.  Exiting the running state resets the job duration used
1505                 by this command.
1506
1507                 This command is intended to help minimize the time wasted  by
1508                 jobs which may erroneously run forever.
1509
1510
1511
1512          max_retries = <integer>
1513                 The  maximum  number of retries allowed for this job (must be
1514                 non-negative). If the job fails (does not exit with the  suc‐
1515                 cess_exit_code  exit  code)  it will be retried up to max_re‐
1516                 tries  times  (unless  retries  are  ceased  because  of  the
1517                 retry_until  command). If max_retries is not defined, and ei‐
1518                 ther retry_until or success_exit_code is, the  value  of  DE‐
1519                 FAULT_JOB_MAX_RETRIES  will be used for the maximum number of
1520                 retries.
1521
1522                 The combination of the  max_retries,  retry_until,  and  suc‐
1523                 cess_exit_code  commands  causes  an appropriate OnExitRemove
1524                 expression to be automatically generated. If retry command(s)
1525                 and on_exit_remove are both defined, the OnExitRemove expres‐
1526                 sion will be generated by OR'ing the expression specified  in
1527                 OnExitRemove  and  the expression generated by the retry com‐
1528                 mands.
1529
1530
1531
1532          retry_until <Integer | ClassAd Boolean Expression>
1533                 An integer value or boolean expression that prevents  further
1534                 retries  from taking place, even if max_retries have not been
1535                 exhausted.  If retry_until is an  integer,  the  job  exiting
1536                 with that exit code will cause retries to cease. If retry_un‐
1537                 til is a ClassAd expression,  the  expression  evaluating  to
1538                 True  will  cause retries to cease.  For example, if you only
1539                 want to retry exit codes 17, 34, and 81:
1540
1541                     max_retries = 5
1542                     retry_until = !member( ExitCode, {17, 34, 81} )
1543
1544
1545
1546          success_exit_code = <integer>
1547                 The exit code that is considered successful for this job. De‐
1548                 faults to 0 if not defined.
1549
1550                 Note:  non-zero  values of success_exit_code should generally
1551                 not be used for DAG node jobs, unless when_to_transfer_output
1552                 is  set  to ON_SUCCESS in order to avoid failed jobs going on
1553                 hold.
1554
1555                 At the present time, condor_dagman does not take into account
1556                 the  value  of  success_exit_code.  This  means that, if suc‐
1557                 cess_exit_code is set to a non-zero value, condor_dagman will
1558                 consider  the  job failed when it actually succeeds. For sin‐
1559                 gle-proc DAG node jobs, this can be overcome by using a  POST
1560                 script that takes into account the value of success_exit_code
1561                 (although this is not recommended). For multi-proc  DAG  node
1562                 jobs, there is currently no way to overcome this limitation.
1563
1564
1565
1566          checkpoint_exit_code = <integer>
1567                 The  exit code which indicates that the executable has exited
1568                 after successfully taking a checkpoint.  The checkpoint  will
1569                 transferred  and  the  executable  restarted.  See users-man‐
1570                 ual/self-checkpointing-applications:Self-Checkpointing Appli‐
1571                 cations for details.
1572
1573
1574
1575          hold = <True | False>
1576                 If hold is set to True, then the submitted job will be placed
1577                 into the Hold state. Jobs in the Hold state will not run  un‐
1578                 til released by condor_release. Defaults to False.
1579
1580
1581
1582          keep_claim_idle = <integer>
1583                 An  integer  number  of  seconds that a job requests the con‐
1584                 dor_schedd to wait before releasing its claim after  the  job
1585                 exits or after the job is removed.
1586
1587                 The process by which the condor_schedd claims a condor_startd
1588                 is somewhat time-consuming. To amortize this cost,  the  con‐
1589                 dor_schedd  tries to reuse claims to run subsequent jobs, af‐
1590                 ter a job using a claim is done. However, it can only do this
1591                 if there is an idle job in the queue at the moment the previ‐
1592                 ous job completes. Sometimes, and  especially  for  the  node
1593                 jobs when using DAGMan, there is a subsequent job about to be
1594                 submitted, but it has not yet arrived in the queue  when  the
1595                 previous  job  completes.  As a result, the condor_schedd re‐
1596                 leases the claim, and the next job must wait an entire  nego‐
1597                 tiation  cycle  to start. When this submit command is defined
1598                 with a non-negative integer, when the  job  exits,  the  con‐
1599                 dor_schedd  tries  as usual to reuse the claim. If it cannot,
1600                 instead of releasing the claim, the condor_schedd  keeps  the
1601                 claim  until  either the number of seconds given as a parame‐
1602                 ter, or a new job which matches that claim arrives, whichever
1603                 comes first. The condor_startd in question will remain in the
1604                 Claimed/Idle state, and the original job  will  be  "charged"
1605                 (in terms of priority) for the time in this state.
1606
1607
1608
1609          leave_in_queue = <ClassAd Boolean Expression>
1610                 When the ClassAd Expression evaluates to True, the job is not
1611                 removed from the queue upon completion. This allows the  user
1612                 of  a  remotely spooled job to retrieve output files in cases
1613                 where HTCondor would have removed them as part of the cleanup
1614                 associated  with completion. The job will only exit the queue
1615                 once it has been marked for removal (via condor_rm, for exam‐
1616                 ple)  and  the  leave_in_queue  expression  has become False.
1617                 leave_in_queue defaults to False.
1618
1619                 As an example, if the job is to be removed once the output is
1620                 retrieved with condor_transfer_data, then use
1621
1622                     leave_in_queue = (JobStatus == 4) && ((StageOutFinish =?= UNDEFINED) ||\
1623                                      (StageOutFinish == 0))
1624
1625
1626
1627          next_job_start_delay = <ClassAd Boolean Expression>
1628                 This  expression specifies the number of seconds to delay af‐
1629                 ter starting up this job before the next job is started.  The
1630                 maximum allowed delay is specified by the HTCondor configura‐
1631                 tion variable MAX_NEXT_JOB_START_DELAY
1632                  , which defaults to 10 minutes. This command does not  apply
1633                 to scheduler or local universe jobs.
1634
1635                 This  command  has been historically used to implement a form
1636                 of job start throttling from the job submitter's perspective.
1637                 It  was  effective  for  the  case of multiple job submission
1638                 where the transfer of extremely large input data sets to  the
1639                 execute  machine  caused  machine performance to suffer. This
1640                 command is no longer useful, as throttling should  be  accom‐
1641                 plished through configuration of the condor_schedd daemon.
1642
1643
1644
1645          on_exit_hold = <ClassAd Boolean Expression>
1646                 The  ClassAd expression is checked when the job exits, and if
1647                 True, places the job into the Hold state. If False  (the  de‐
1648                 fault  value  when not defined), then nothing happens and the
1649                 on_exit_remove expression is checked  to  determine  if  that
1650                 needs to be applied.
1651
1652                 For  example:  Suppose a job is known to run for a minimum of
1653                 an hour.  If the job exits after less than an hour,  the  job
1654                 should be placed on hold and an e-mail notification sent, in‐
1655                 stead of being allowed to leave the queue.
1656
1657                     on_exit_hold = (time() - JobStartDate) < (60 * $(MINUTE))
1658
1659                 This expression places the job on hold if it  exits  for  any
1660                 reason  before running for an hour. An e-mail will be sent to
1661                 the user explaining that the job was placed on  hold  because
1662                 this expression became True.
1663
1664                 periodic_* expressions take precedence over on_exit_* expres‐
1665                 sions, and *_hold expressions take precedence over a *_remove
1666                 expressions.
1667
1668                 Only  job  ClassAd attributes will be defined for use by this
1669                 ClassAd expression. This  expression  is  available  for  the
1670                 vanilla, java, parallel, grid, local and scheduler universes.
1671
1672
1673
1674          on_exit_hold_reason = <ClassAd String Expression>
1675                 When  the  job  is placed on hold due to the on_exit_hold ex‐
1676                 pression becoming True, this expression is evaluated  to  set
1677                 the  value  of HoldReason in the job ClassAd. If this expres‐
1678                 sion is UNDEFINED or produces an empty or invalid  string,  a
1679                 default description is used.
1680
1681
1682
1683          on_exit_hold_subcode = <ClassAd Integer Expression>
1684                 When  the  job  is placed on hold due to the on_exit_hold ex‐
1685                 pression becoming True, this expression is evaluated  to  set
1686                 the  value  of  HoldReasonSubCode in the job ClassAd. The de‐
1687                 fault subcode is 0. The HoldReasonCode  will  be  set  to  3,
1688                 which indicates that the job went on hold due to a job policy
1689                 expression.
1690
1691
1692
1693          on_exit_remove = <ClassAd Boolean Expression>
1694                 The ClassAd expression is checked when the job exits, and  if
1695                 True  (the  default value when undefined), then it allows the
1696                 job to leave the queue normally. If False, then  the  job  is
1697                 placed  back  into the Idle state. If the user job runs under
1698                 the vanilla universe, then the job restarts from  the  begin‐
1699                 ning.
1700
1701                 For  example,  suppose  a  job  occasionally  segfaults,  but
1702                 chances are that the job will finish successfully if the  job
1703                 is  run  again with the same data. The on_exit_remove expres‐
1704                 sion can cause the job to run again with the  following  com‐
1705                 mand.  Assume that the signal identifier for the segmentation
1706                 fault is 11 on the platform where the job will be running.
1707
1708                     on_exit_remove = (ExitBySignal == False) || (ExitSignal != 11)
1709
1710                 This expression lets the job leave the queue if the  job  was
1711                 not  killed by a signal or if it was killed by a signal other
1712                 than 11, representing segmentation fault in this example. So,
1713                 if  the  exited  due  to  signal  11, it will stay in the job
1714                 queue. In any other case of the job  exiting,  the  job  will
1715                 leave the queue as it normally would have done.
1716
1717                 As another example, if the job should only leave the queue if
1718                 it exited on its own with status 0, this  on_exit_remove  ex‐
1719                 pression works well:
1720
1721                     on_exit_remove = (ExitBySignal == False) && (ExitCode == 0)
1722
1723                 If  the  job was killed by a signal or exited with a non-zero
1724                 exit status, HTCondor would leave the job in the queue to run
1725                 again.
1726
1727                 periodic_* expressions take precedence over on_exit_* expres‐
1728                 sions, and *_hold expressions take precedence over a *_remove
1729                 expressions.
1730
1731                 Only  job  ClassAd attributes will be defined for use by this
1732                 ClassAd expression.
1733
1734
1735
1736          periodic_hold = <ClassAd Boolean Expression>
1737                 This expression is checked periodically when the job  is  not
1738                 in the Held state. If it becomes True, the job will be placed
1739                 on hold.  If unspecified, the default value is False.
1740
1741                 periodic_* expressions take precedence over on_exit_* expres‐
1742                 sions, and *_hold expressions take precedence over a *_remove
1743                 expressions.
1744
1745                 Only job ClassAd attributes will be defined for use  by  this
1746                 ClassAd expression. Note that, by default, this expression is
1747                 only checked once every 60 seconds. The period of these eval‐
1748                 uations  can  be adjusted by setting the PERIODIC_EXPR_INTER‐
1749                 VAL, MAX_PERIODIC_EXPR_INTERVAL, and  PERIODIC_EXPR_TIMESLICE
1750                 configuration macros.
1751
1752
1753
1754          periodic_hold_reason = <ClassAd String Expression>
1755                 When  the  job is placed on hold due to the periodic_hold ex‐
1756                 pression becoming True, this expression is evaluated  to  set
1757                 the  value  of HoldReason in the job ClassAd. If this expres‐
1758                 sion is UNDEFINED or produces an empty or invalid  string,  a
1759                 default description is used.
1760
1761
1762
1763          periodic_hold_subcode = <ClassAd Integer Expression>
1764                 When  the  job is placed on hold due to the periodic_hold ex‐
1765                 pression becoming true, this expression is evaluated  to  set
1766                 the  value  of  HoldReasonSubCode in the job ClassAd. The de‐
1767                 fault subcode is 0. The HoldReasonCode  will  be  set  to  3,
1768                 which indicates that the job went on hold due to a job policy
1769                 expression.
1770
1771
1772
1773          periodic_release = <ClassAd Boolean Expression>
1774                 This expression is checked periodically when the  job  is  in
1775                 the  Held state. If the expression becomes True, the job will
1776                 be released.  If the job was held via condor_hold (i.e.  Hol‐
1777                 dReasonCode is 1), then this expression is ignored.
1778
1779                 Only  job  ClassAd attributes will be defined for use by this
1780                 ClassAd expression. Note that, by default, this expression is
1781                 only checked once every 60 seconds. The period of these eval‐
1782                 uations can be adjusted by setting  the  PERIODIC_EXPR_INTER‐
1783                 VAL,  MAX_PERIODIC_EXPR_INTERVAL, and PERIODIC_EXPR_TIMESLICE
1784                 configuration macros.
1785
1786
1787
1788          periodic_remove = <ClassAd Boolean Expression>
1789                 This expression is checked periodically. If it becomes  True,
1790                 the  job  is  removed from the queue. If unspecified, the de‐
1791                 fault value is False.
1792
1793                 See the Examples section of this manual page for  an  example
1794                 of a periodic_remove expression.
1795
1796                 periodic_* expressions take precedence over on_exit_* expres‐
1797                 sions, and *_hold expressions take precedence over a *_remove
1798                 expressions.  So, the periodic_remove expression takes prece‐
1799                 dent over the on_exit_remove expression, if the two  describe
1800                 conflicting actions.
1801
1802                 Only  job  ClassAd attributes will be defined for use by this
1803                 ClassAd expression. Note that, by default, this expression is
1804                 only checked once every 60 seconds. The period of these eval‐
1805                 uations can be adjusted by setting  the  PERIODIC_EXPR_INTER‐
1806                 VAL,  MAX_PERIODIC_EXPR_INTERVAL, and PERIODIC_EXPR_TIMESLICE
1807                 configuration macros.
1808
1809       COMMANDS FOR THE GRID
1810
1811
1812          arc_application = <XML-string>
1813                 For grid universe jobs of type arc, provides  additional  XML
1814                 attributes under the <Application> section of the ARC ADL job
1815                 description which are not covered by regular submit  descrip‐
1816                 tion file parameters.
1817
1818
1819
1820          arc_resources = <XML-string>
1821                 For  grid  universe jobs of type arc, provides additional XML
1822                 attributes under the <Resources> section of the ARC  ADL  job
1823                 description  which are not covered by regular submit descrip‐
1824                 tion file parameters.
1825
1826
1827
1828          arc_rte = < rte1 option,rte2 >
1829                 For grid universe jobs of type arc, provides a list  of  Run‐
1830                 time  Environment names that the job requires on the ARC sys‐
1831                 tem.  The list is comma-delimited. If a  Runtime  Environment
1832                 name  supports options, those can be provided after the name,
1833                 separated by spaces.  Runtime Environment names  are  defined
1834                 by the ARC server.
1835
1836
1837
1838          azure_admin_key = <pathname>
1839                 For grid type azure jobs, specifies the path and file name of
1840                 a file that contains an SSH public key. This key can be  used
1841                 to  log  into  the  administrator account of the instance via
1842                 SSH.
1843
1844
1845
1846          azure_admin_username = <account name>
1847                 For grid type azure jobs, specifies the name of  an  adminis‐
1848                 trator  account  to  be created in the instance. This account
1849                 can be logged into via SSH.
1850
1851
1852
1853          azure_auth_file = <pathname>
1854                 For grid type azure jobs, specifies a path and file  name  of
1855                 the authorization file that grants permission for HTCondor to
1856                 use the Azure account. If it's  not  defined,  then  HTCondor
1857                 will  attempt to use the default credentials of the Azure CLI
1858                 tools.
1859
1860
1861
1862          azure_image = <image id>
1863                 For grid type azure jobs, identifies the  disk  image  to  be
1864                 used  for  the boot disk of the instance. This image must al‐
1865                 ready be registered within Azure.
1866
1867
1868
1869          azure_location = <image id>
1870                 For grid type azure  jobs,  identifies  the  location  within
1871                 Azure  where  the  instance should be run. As an example, one
1872                 current location is centralus.
1873
1874
1875
1876          azure_size = <machine type>
1877                 For grid type azure jobs, the hardware configuration that the
1878                 virtual machine instance is to run on.
1879
1880
1881
1882          batch_extra_submit_args = <command-line arguments>
1883                 Used for batch grid universe jobs.  Specifies additional com‐
1884                 mand-line arguments to be given to the target batch  system's
1885                 job submission command.
1886
1887
1888
1889          batch_project = <projectname>
1890                 Used for batch grid universe jobs.  Specifies the name of the
1891                 PBS/LSF/SGE/SLURM project, account, or allocation that should
1892                 be charged for the resources used by the job.
1893
1894
1895
1896          batch_queue = <queuename>
1897                 Used for batch grid universe jobs.  Specifies the name of the
1898                 PBS/LSF/SGE/SLURM job queue into which the job should be sub‐
1899                 mitted.  If  not specified, the default queue is used.  For a
1900                 multi-cluster SLURM configuration, which cluster to  use  can
1901                 be  specified  by  supplying the name after an @ symbol.  For
1902                 example, to submit a job to the debug queue on  cluster  foo,
1903                 you would use the value debug@foo.
1904
1905
1906
1907          batch_runtime = <seconds>
1908                 Used for batch grid universe jobs.  Specifies a limit in sec‐
1909                 onds on the execution time of the job.   This  limit  is  en‐
1910                 forced by the PBS/LSF/SGE/SLURM scheduler.
1911
1912
1913
1914          cloud_label_names = <name0,name1,name...>
1915                 For  grid type gce jobs, specifies the case of tag names that
1916                 will be associated with the running instance.  This  is  only
1917                 necessary  if  a  tag  name case matters. By default the list
1918                 will be automatically generated.
1919
1920
1921
1922          cloud_label_<name> = <value>
1923                 For grid type gce jobs, specifies a label and value to be as‐
1924                 sociated  with  the  running instance. The label name will be
1925                 lower-cased; use cloud_label_names to change the case.
1926
1927
1928
1929          delegate_job_GSI_credentials_lifetime = <seconds>
1930                 Specifies the maximum number of seconds for  which  delegated
1931                 proxies  should be valid. The default behavior when this com‐
1932                 mand is not specified  is  determined  by  the  configuration
1933                 variable DELEGATE_JOB_GSI_CREDENTIALS_LIFETIME
1934                  , which defaults to one day. A value of 0 indicates that the
1935                 delegated proxy should be valid for as long as allowed by the
1936                 credential  used  to create the proxy. This setting currently
1937                 only applies to proxies delegated for non-grid jobs  and  for
1938                 HTCondor-C jobs.  This variable has no effect if the configu‐
1939                 ration variable DELEGATE_JOB_GSI_CREDENTIALS
1940                   is False, because in that case  the  job  proxy  is  copied
1941                 rather than delegated.
1942
1943
1944
1945          ec2_access_key_id = <pathname>
1946                 For  grid  type  ec2 jobs, identifies the file containing the
1947                 access key.
1948
1949
1950
1951          ec2_ami_id = <EC2 xMI ID>
1952                 For grid type ec2 jobs, identifies the  machine  image.  Ser‐
1953                 vices  compatible  with  the EC2 Query API may refer to these
1954                 with abbreviations other than AMI, for example EMI  is  valid
1955                 for Eucalyptus.
1956
1957
1958
1959          ec2_availability_zone = <zone name>
1960                 For  grid type ec2 jobs, specifies the Availability Zone that
1961                 the instance should be run in. This command is optional,  un‐
1962                 less  ec2_ebs_volumes is set. As an example, one current zone
1963                 is us-east-1b.
1964
1965
1966
1967          ec2_block_device_mapping = <block-device>:<kernel-device>,<block-de‐
1968          vice>:<kernel-device>, ...
1969                 For  grid type ec2 jobs, specifies the block device to kernel
1970                 device mapping. This command is optional.
1971
1972
1973
1974          ec2_ebs_volumes  =  <ebs  name>:<device   name>,<ebs   name>:<device
1975          name>,...
1976                 For  grid type ec2 jobs, optionally specifies a list of Elas‐
1977                 tic Block Store (EBS) volumes to be made available to the in‐
1978                 stance and the device names they should have in the instance.
1979
1980
1981
1982          ec2_elastic_ip = <elastic IP address>
1983                 For  grid  type  ec2  jobs,  and optional specification of an
1984                 Elastic IP address that should be assigned to this instance.
1985
1986
1987
1988          ec2_iam_profile_arn = <IAM profile ARN>
1989                 For grid type ec2 jobs, an Amazon Resource Name (ARN) identi‐
1990                 fying  which  Identity and Access Management (IAM) (instance)
1991                 profile to associate with the instance.
1992
1993
1994
1995          ec2_iam_profile_name= <IAM profile name>
1996                 For grid type ec2 jobs, a name identifying which Identity and
1997                 Access  Management (IAM) (instance) profile to associate with
1998                 the instance.
1999
2000
2001
2002          ec2_instance_type = <instance type>
2003                 For grid type ec2 jobs, identifies the instance type. Differ‐
2004                 ent  services  may  offer different instance types, so no de‐
2005                 fault value is set.
2006
2007
2008
2009          ec2_keypair = <ssh key-pair name>
2010                 For grid type ec2 jobs, specifies the name of an SSH key-pair
2011                 that  is already registered with the EC2 service. The associ‐
2012                 ated private key can be used to ssh into the virtual  machine
2013                 once it is running.
2014
2015
2016
2017          ec2_keypair_file = <pathname>
2018                 For  grid type ec2 jobs, specifies the complete path and file
2019                 name of a file into which HTCondor will write an SSH key  for
2020                 use  with  ec2 jobs. The key can be used to ssh into the vir‐
2021                 tual machine once it is running. If ec2_keypair    is  speci‐
2022                 fied for a job, ec2_keypair_file is ignored.
2023
2024
2025
2026          ec2_parameter_names = ParameterName1, ParameterName2, ...
2027                 For  grid  type  ec2 jobs, a space or comma separated list of
2028                 the names of additional parameters to pass when instantiating
2029                 an instance.
2030
2031
2032
2033          ec2_parameter_<name> = <value>
2034                 For  grid  type  ec2 jobs, specifies the value for the corre‐
2035                 spondingly named (instance instantiation)  parameter.  <name>
2036                 is the parameter name specified in the submit command ec2_pa‐
2037                 rameter_names  , but with  any  periods  replaced  by  under‐
2038                 scores.
2039
2040
2041
2042          ec2_secret_access_key = <pathname>
2043                 For grid type ec2 jobs, specifies the path and file name con‐
2044                 taining the secret access key.
2045
2046
2047
2048          ec2_security_groups = group1, group2, ...
2049                 For grid type ec2 jobs, defines  the  list  of  EC2  security
2050                 groups which should be associated with the job.
2051
2052
2053
2054          ec2_security_ids = id1, id2, ...
2055                 For  grid  type  ec2  jobs,  defines the list of EC2 security
2056                 group IDs which should be associated with the job.
2057
2058
2059
2060          ec2_spot_price = <bid>
2061                 For grid type ec2 jobs,  specifies  the  spot  instance  bid,
2062                 which  is  the  most that the job submitter is willing to pay
2063                 per hour to run this job.
2064
2065
2066
2067          ec2_tag_names = <name0,name1,name...>
2068                 For grid type ec2 jobs, specifies the case of tag names  that
2069                 will  be  associated  with the running instance. This is only
2070                 necessary if a tag name case matters.  By  default  the  list
2071                 will be automatically generated.
2072
2073
2074
2075          ec2_tag_<name> = <value>
2076                 For grid type ec2 jobs, specifies a tag to be associated with
2077                 the running instance. The tag name will be  lower-cased;  use
2078                 ec2_tag_names to change the case.
2079
2080
2081
2082          WantNameTag = <True | False>
2083                 For grid type ec2 jobs, a job may request that its 'name' tag
2084                 be (not) set by HTCondor. If the job does not otherwise spec‐
2085                 ify  any tags, not setting its name tag will eliminate a call
2086                 by the EC2 GAHP, improving performance.
2087
2088
2089
2090          ec2_user_data = <data>
2091                 For grid type ec2 jobs, provides a block of data that can  be
2092                 accessed  by  the  virtual machine. If both ec2_user_data and
2093                 ec2_user_data_file are specified for a job, the two blocks of
2094                 data  are concatenated, with the data from this ec2_user_data
2095                 submit command occurring first.
2096
2097
2098
2099          ec2_user_data_file = <pathname>
2100                 For grid type ec2 jobs, specifies a path and file name  whose
2101                 contents  can  be  accessed  by  the virtual machine. If both
2102                 ec2_user_data and ec2_user_data_file are specified for a job,
2103                 the  two  blocks of data are concatenated, with the data from
2104                 that ec2_user_data submit command occurring first.
2105
2106
2107
2108          ec2_vpc_ip = <a.b.c.d>
2109                 For grid type ec2 jobs, that are part of  a  Virtual  Private
2110                 Cloud (VPC), an optional specification of the IP address that
2111                 this instance should have within the VPC.
2112
2113
2114
2115          ec2_vpc_subnet = <subnet specification string>
2116                 For grid type ec2 jobs, an optional specification of the Vir‐
2117                 tual  Private Cloud (VPC) that this instance should be a part
2118                 of.
2119
2120
2121
2122          gce_account = <account name>
2123                 For grid type gce jobs, specifies the Google  cloud  services
2124                 account  to use. If this submit command isn't specified, then
2125                 a  random  account  from  the  authorization  file  given  by
2126                 gce_auth_file will be used.
2127
2128
2129
2130          gce_auth_file = <pathname>
2131                 For grid type gce jobs, specifies a path and file name of the
2132                 authorization file that grants permission for HTCondor to use
2133                 the  Google  account.  If this command is not specified, then
2134                 the default file of the Google  command-line  tools  will  be
2135                 used.
2136
2137
2138
2139          gce_image = <image id>
2140                 For grid type gce jobs, the identifier of the virtual machine
2141                 image representing the HTCondor job to be run.  This  virtual
2142                 machine image must already be register with GCE and reside in
2143                 Google's Cloud Storage service.
2144
2145
2146
2147          gce_json_file = <pathname>
2148                 For grid type gce jobs, specifies the path and file name of a
2149                 file  that contains JSON elements that should be added to the
2150                 instance description submitted to the GCE service.
2151
2152
2153
2154          gce_machine_type = <machine type>
2155                 For grid type gce jobs, the long form of  the  URL  that  de‐
2156                 scribes  the  machine  configuration that the virtual machine
2157                 instance is to run on.
2158
2159
2160
2161          gce_metadata = <name=value,...,name=value>
2162                 For grid type gce jobs, a comma separated list  of  name  and
2163                 value  pairs  that  define metadata for a virtual machine in‐
2164                 stance that is an HTCondor job.
2165
2166
2167
2168          gce_metadata_file = <pathname>
2169                 For grid type gce jobs, specifies a path and file name of the
2170                 file  that  contains  metadata for a virtual machine instance
2171                 that is an HTCondor job. Within the file, each name and value
2172                 pair  is  on its own line; so, the pairs are separated by the
2173                 newline character.
2174
2175
2176
2177          gce_preemptible = <True | False>
2178                 For grid type gce jobs, specifies whether the virtual machine
2179                 instance  should  be  preemptible. The default is for the in‐
2180                 stance to not be preemptible.
2181
2182
2183
2184          grid_resource = <grid-type-string> <grid-specific-parameter-list>
2185                 For each grid-type-string value, there are further  type-spe‐
2186                 cific  values  that  must  specified. This submit description
2187                 file command allows each to be  given  in  a  space-separated
2188                 list.  Allowable  grid-type-string  values  are  arc,  azure,
2189                 batch, condor, ec2, and gce.  The HTCondor manual chapter  on
2190                 Grid Computing details the variety of grid types.
2191
2192                 For  a grid-type-string of batch, the single parameter is the
2193                 name of the local batch system, and will be one of pbs,  lsf,
2194                 slurm, or sge.
2195
2196                 For  a grid-type-string of condor, the first parameter is the
2197                 name of the remote condor_schedd daemon. The second parameter
2198                 is  the  name  of  the pool to which the remote condor_schedd
2199                 daemon belongs.
2200
2201                 For a grid-type-string of ec2, one additional parameter spec‐
2202                 ifies the EC2 URL.
2203
2204                 For  a  grid-type-string  of arc, the single parameter is the
2205                 name of the ARC resource to be used.
2206
2207
2208
2209          transfer_error = <True | False>
2210                 For jobs submitted to the grid universe only. If  True,  then
2211                 the  error  output  (from stderr) from the job is transferred
2212                 from the remote machine back to the access point. The name of
2213                 the  file  after transfer is given by the error   command. If
2214                 False, no transfer takes place (from the  remote  machine  to
2215                 access point), and the name of the file is given by the error
2216                 command. The default value is True.
2217
2218
2219
2220          transfer_input = <True | False>
2221                 For jobs submitted to the grid universe only. If  True,  then
2222                 the  job  input (stdin) is transferred from the machine where
2223                 the job was submitted to the remote machine. The name of  the
2224                 file  that is transferred is given by the input   command. If
2225                 False, then the job's input is taken from a  pre-staged  file
2226                 on  the  remote machine, and the name of the file is given by
2227                 the input   command. The default value is True.
2228
2229                 For transferring files other  than  stdin,  see  transfer_in‐
2230                 put_files  .
2231
2232
2233
2234          transfer_output = <True | False>
2235                 For  jobs  submitted to the grid universe only. If True, then
2236                 the output (from stdout) from the job is transferred from the
2237                 remote machine back to the access point. The name of the file
2238                 after transfer is given by the output   command. If False, no
2239                 transfer  takes  place  (from  the  remote  machine to access
2240                 point), and the name of the  file  is  given  by  the  output
2241                 command. The default value is True.
2242
2243                 For  transferring  files other than stdout, see transfer_out‐
2244                 put_files  .
2245
2246
2247
2248          use_x509userproxy = <True | False>
2249                 Set this command to True to indicate that the job requires an
2250                 X.509  user proxy. If x509userproxy is set, then that file is
2251                 used for the proxy. Otherwise, the proxy is looked for in the
2252                 standard  locations. If x509userproxy is set or if the job is
2253                 a grid universe job of grid  type  arc,  then  the  value  of
2254                 use_x509userproxy is forced to True. Defaults to False.
2255
2256
2257
2258          x509userproxy = <full-pathname>
2259                 Used  to  override  the default path name for X.509 user cer‐
2260                 tificates.  The default location for  X.509  proxies  is  the
2261                 /tmp  directory, which is generally a local file system. Set‐
2262                 ting this value would allow HTCondor to access the proxy in a
2263                 shared  file system (for example, AFS). HTCondor will use the
2264                 proxy specified in the  submit  description  file  first.  If
2265                 nothing  is specified in the submit description file, it will
2266                 use the environment variable X509_USER_PROXY. If  that  vari‐
2267                 able  is not present, it will search in the default location.
2268                 Note that proxies are only valid for  a  limited  time.  Con‐
2269                 dor_submit  will  not  submit a job with an expired proxy, it
2270                 will return an error. Also, if  the  configuration  parameter
2271                 CRED_MIN_TIME_LEFT  is  set to some number of seconds, and if
2272                 the proxy will expire before that many seconds, condor_submit
2273                 will   also   refuse   to   submit   the  job.  That  is,  if
2274                 CRED_MIN_TIME_LEFT is set to 60, condor_submit will refuse to
2275                 submit a job whose proxy will expire 60 seconds from the time
2276                 of submission.
2277
2278                 x509userproxy   is relevant when the universe is vanilla,  or
2279                 when  the universe is grid and the type of grid system is one
2280                 of condor, or arc. Defining a value causes the  proxy  to  be
2281                 delegated  to  the execute machine.  Further, VOMS attributes
2282                 defined in the proxy will appear in the job ClassAd.
2283
2284
2285
2286          use_scitokens = <True | False | Auto>
2287                 Set this command to True to indicate that the job requires  a
2288                 scitoken.   If  scitokens_file is set, then that file is used
2289                 for the scitoken filename. Otherwise, the the scitoken  file‐
2290                 name is looked for in the BEARER_TOKEN_FILE environment vari‐
2291                 able. If scitokens_file is set then the value  of  use_scito‐
2292                 kens  defaults to True.  If the filename is not defined in on
2293                 one of these two places, then condor_submit will fail with an
2294                 error message.  Set this command to Auto to indicate that the
2295                 job will use a scitoken if scitokens_file or  the  BEARER_TO‐
2296                 KEN_FILE  environment  variable is set, but it will not be an
2297                 error if no file is specified.
2298
2299
2300
2301          scitokens_file = <full-pathname>
2302                 Used to set the path to the file containing the scitoken that
2303                 the  job  needs, or to override the path to the scitoken con‐
2304                 tained in the BEARER_TOKEN_FILE environment variable.
2305
2306       COMMANDS FOR PARALLEL, JAVA, and SCHEDULER UNIVERSES
2307
2308
2309          hold_kill_sig = <signal-number>
2310                 For the scheduler universe only, signal-number   is the  sig‐
2311                 nal  delivered  to  the  job when the job is put on hold with
2312                 condor_hold.  signal-number may be either  the  platform-spe‐
2313                 cific  name  or  value  of the signal. If this command is not
2314                 present, the value of kill_sig   is used.
2315
2316
2317
2318          jar_files = <file_list>
2319                 Specifies a list of additional JAR files to include when  us‐
2320                 ing  the  Java  universe. JAR files will be transferred along
2321                 with the executable and automatically added to the classpath.
2322
2323
2324
2325          java_vm_args = <argument_list>
2326                 Specifies a list of additional arguments to the Java  VM  it‐
2327                 self,  When HTCondor runs the Java program, these are the ar‐
2328                 guments that go before the class name. This can  be  used  to
2329                 set  VM-specific arguments like stack size, garbage-collector
2330                 arguments and initial property values.
2331
2332          machine_count = <max>
2333                 For the parallel universe, a single value (max) is  required.
2334                 It  is  neither  a  maximum or minimum, but the number of ma‐
2335                 chines to be dedicated toward running the job.
2336
2337
2338
2339          remove_kill_sig = <signal-number>
2340                 For the scheduler universe only, signal-number   is the  sig‐
2341                 nal  delivered  to  the job when the job is removed with con‐
2342                 dor_rm.  signal-number may be  either  the  platform-specific
2343                 name or value of the signal.  This example shows it both ways
2344                 for a Linux signal:
2345
2346                     remove_kill_sig = SIGUSR1
2347                     remove_kill_sig = 10
2348
2349                 If this command is not present, the value  of  kill_sig    is
2350                 used.
2351
2352       COMMANDS FOR THE VM UNIVERSE
2353
2354
2355          vm_disk  = file1:device1:permission1, file2:device2:permission2:for‐
2356          mat2, ...
2357                 A list of comma separated disk files. Each disk file is spec‐
2358                 ified  by  4  colon  separated fields. The first field is the
2359                 path and file name of the disk file. The second field  speci‐
2360                 fies  the  device. The third field specifies permissions, and
2361                 the optional fourth field specifies the image  format.  If  a
2362                 disk  file  will  be  transferred by HTCondor, then the first
2363                 field should just be the simple file name (no  path  informa‐
2364                 tion).
2365
2366                 An example that specifies two disk files:
2367
2368                     vm_disk = /myxen/diskfile.img:sda1:w,/myxen/swap.img:sda2:w
2369
2370
2371
2372          vm_checkpoint = <True | False>
2373                 A  boolean  value  specifying  whether  or not to take check‐
2374                 points. If not specified, the default value is False. In  the
2375                 current   implementation,   setting  both  vm_checkpoint  and
2376                 vm_networking to True does not yet work in  all  cases.  Net‐
2377                 working cannot be used if a vm universe job uses a checkpoint
2378                 in order to continue execution after migration to another ma‐
2379                 chine.
2380
2381
2382
2383          vm_macaddr = <MACAddr>
2384                 Defines  that  MAC address that the virtual machine's network
2385                 interface should have, in the standard format of  six  groups
2386                 of two hexadecimal digits separated by colons.
2387
2388
2389
2390          vm_memory = <MBytes-of-memory>
2391                 The  amount  of  memory  in MBytes that a vm universe job re‐
2392                 quires.
2393
2394
2395
2396          vm_networking = <True | False>
2397                 Specifies whether to use networking or not.  In  the  current
2398                 implementation,  setting both vm_checkpoint and vm_networking
2399                 to True does not yet work in all cases. Networking cannot  be
2400                 used  if a vm universe job uses a checkpoint in order to con‐
2401                 tinue execution after migration to another machine.
2402
2403
2404
2405          vm_networking_type = <nat | bridge >
2406                 When vm_networking is  True,  this  definition  augments  the
2407                 job's  requirements to match only machines with the specified
2408                 networking. If not specified,  then  either  networking  type
2409                 matches.
2410
2411
2412
2413          vm_no_output_vm = <True | False>
2414                 When  True,  prevents HTCondor from transferring output files
2415                 back to the machine from which the vm universe job  was  sub‐
2416                 mitted. If not specified, the default value is False.
2417
2418
2419
2420          vm_type = <xen | kvm>
2421                 Specifies  the  underlying virtual machine software that this
2422                 job expects.
2423
2424
2425
2426          xen_initrd = <image-file>
2427                 When xen_kernel gives a file name for  the  kernel  image  to
2428                 use,  this  optional  command may specify a path to a ramdisk
2429                 (initrd) image file. If the image file will be transferred by
2430                 HTCondor,  then the value should just be the simple file name
2431                 (no path information).
2432
2433
2434
2435          xen_kernel = <included | path-to-kernel>
2436                 A value of included specifies that the kernel is included  in
2437                 the  disk file. If not one of these values, then the value is
2438                 a path and file name of the kernel to be used.  If  a  kernel
2439                 file  will  be transferred by HTCondor, then the value should
2440                 just be the simple file name (no path information).
2441
2442
2443
2444          xen_kernel_params = <string>
2445                 A string that is appended to the Xen kernel command line.
2446
2447
2448
2449          xen_root = <string>
2450                 A string that is appended to the Xen kernel command  line  to
2451                 specify  the  root  device.  This  string  is  required  when
2452                 xen_kernel   gives a path to a kernel. Omission for this  re‐
2453                 quired case results in an error message during submission.
2454
2455       COMMANDS FOR THE DOCKER UNIVERSE
2456
2457
2458          docker_image = < image-name >
2459                 Defines  the  name  of the Docker image that is the basis for
2460                 the docker container.
2461
2462
2463
2464          docker_network_type = < host | none | custom_admin_defined_value>
2465                 If docker_network_type is set to the string  host,  then  the
2466                 job  is  run using the host's network. If docker_network_type
2467                 is set to the string none, then the job is run with  no  net‐
2468                 work. If this is not set, each job gets a private network in‐
2469                 terface.  Some administrators may define site specific docker
2470                 networks  on a given worker node.  When this is the case, ad‐
2471                 ditional values may be valid here.
2472
2473
2474
2475          docker_pull_policy = < always >
2476                 if docker_pull_policy is set to always, when  a  docker  uni‐
2477                 verse job starts on a worker node, the option "--pull always"
2478                 will be passed to the docker run command.  This only  impacts
2479                 worker  nodes  which already have a locally cached version of
2480                 the image.  With this option, docker will always  check  with
2481                 the  repo  to see if the cached version is out of date.  This
2482                 requires more network connectivity, and may cause docker  hub
2483                 to throttle future pull requests.  It is generally recommened
2484                 to never mutate docker image tag name, and avoid needing this
2485                 option.
2486
2487
2488
2489          container_service_names = <service-name>[, <service-name>]*
2490                 A  string-  or  comma- separated list of service names.  Each
2491                 service-name must have  a  corresponding  <service-name>_con‐
2492                 tainer_port command specifying a port number (an integer from
2493                 0 to 65535).  HTCondor will ask Docker to forward from a host
2494                 port to the specified port inside the container.  When Docker
2495                 has done so, HTCondor will add an attribute to the job ad for
2496                 each service, <service-name>HostPort, which contains the port
2497                 number on the host forwarding to the corresponding service.
2498
2499       COMMANDS FOR THE CONTAINER UNIVERSE
2500
2501
2502          container_image = < image-name >
2503                 Defines the name of the container image. Can be a singularity
2504                 .sif  file, a singularity exploded directory, or a path to an
2505                 image in a docker style repository
2506
2507
2508
2509          container_target_dir = < path-to-directory-inside-container >
2510                 Defines the working directory of  the  job  inside  the  con‐
2511                 tainer.   Will  be  mapped  to  the  scratch directory on the
2512                 worker node.
2513
2514       ADVANCED COMMANDS
2515
2516
2517          accounting_group = <accounting-group-name>
2518                 Causes jobs to negotiate under the  given  accounting  group.
2519                 This value is advertised in the job ClassAd as AcctGroup. The
2520                 HTCondor Administrator's  manual  contains  more  information
2521                 about accounting groups.
2522
2523
2524
2525          accounting_group_user = <accounting-group-user-name>
2526                 Sets  the  name  associated  with this job to be used for re‐
2527                 source usage accounting  purposes,  such  as  computation  of
2528                 fair-share  priority  and  reporting via condor_userprio.  If
2529                 not set, defaults to the value of the job  ClassAd  attribute
2530                 User.  This  value  is advertised in the job ClassAd as Acct‐
2531                 GroupUser.
2532
2533
2534
2535          concurrency_limits = <string-list>
2536                 A list of resources that this job needs.  The  resources  are
2537                 presumed to have concurrency limits placed upon them, thereby
2538                 limiting the number of concurrent  jobs  in  execution  which
2539                 need  the named resource. Commas and space characters delimit
2540                 the items in the list.  Each item in the  list  is  a  string
2541                 that identifies the limit, or it is a ClassAd expression that
2542                 evaluates to a string, and it is evaluated in the context  of
2543                 machine ClassAd being considered as a match. Each item in the
2544                 list also may specify a numerical value identifying the inte‐
2545                 ger  number  of  resources  required for the job.  The syntax
2546                 follows the resource name by a colon character  (:)  and  the
2547                 numerical value. Details on concurrency limits are in the HT‐
2548                 Condor Administrator's manual.
2549
2550
2551
2552          concurrency_limits_expr = <ClassAd String Expression>
2553                 A ClassAd expression that represents the  list  of  resources
2554                 that  this job needs after evaluation. The ClassAd expression
2555                 may specify machine ClassAd  attributes  that  are  evaluated
2556                 against  a  matched  machine. After evaluation, the list sets
2557                 concurrency_limits.
2558
2559
2560
2561          copy_to_spool = <True | False>
2562                 If copy_to_spool is True, then condor_submit copies the  exe‐
2563                 cutable  to  the local spool directory before running it on a
2564                 remote host. As copying can be quite time consuming  and  un‐
2565                 necessary,  the default value is False for all job universes.
2566                 When False, condor_submit does not copy the executable  to  a
2567                 local spool directory.
2568
2569
2570
2571          coresize = <size>
2572                 Should  the  user's  program  abort  and produce a core file,
2573                 coresize specifies the maximum size in bytes of the core file
2574                 which  the  user wishes to keep. If coresize is not specified
2575                 in the command file, this is set to 0 (meaning no  core  will
2576                 be generated).
2577
2578
2579
2580          cron_day_of_month = <Cron-evaluated Day>
2581                 The  set  of  days of the month for which a deferral time ap‐
2582                 plies. The HTCondor User's manual section on Time  Scheduling
2583                 for Job Execution has further details.
2584
2585
2586
2587          cron_day_of_week = <Cron-evaluated Day>
2588                 The  set  of  days  of the week for which a deferral time ap‐
2589                 plies. The HTCondor User's manual section on Time  Scheduling
2590                 for Job Execution has further details.
2591
2592
2593
2594          cron_hour = <Cron-evaluated Hour>
2595                 The  set  of  hours  of the day for which a deferral time ap‐
2596                 plies. The HTCondor User's manual section on Time  Scheduling
2597                 for Job Execution has further details.
2598
2599
2600
2601          cron_minute = <Cron-evaluated Minute>
2602                 The  set  of minutes within an hour for which a deferral time
2603                 applies.  The HTCondor User's manual section on Time Schedul‐
2604                 ing for Job Execution has further details.
2605
2606
2607
2608          cron_month = <Cron-evaluated Month>
2609                 The set of months within a year for which a deferral time ap‐
2610                 plies.  The HTCondor User's manual section on Time Scheduling
2611                 for Job Execution has further details.
2612
2613
2614
2615          cron_prep_time = <ClassAd Integer Expression>
2616                 Analogous  to  deferral_prep_time   .   The number of seconds
2617                 prior to a job's deferral time that the job  may  be  matched
2618                 and sent to an execution machine.
2619
2620
2621
2622          cron_window = <ClassAd Integer Expression>
2623                 Analogous to the submit command deferral_window  .  It allows
2624                 cron jobs that miss their deferral time to begin execution.
2625
2626                 The HTCondor User's manual section on Time Scheduling for Job
2627                 Execution has further details.
2628
2629
2630
2631          dagman_log = <pathname>
2632                 DAGMan  inserts  this command to specify an event log that it
2633                 watches to maintain the state of the DAG. If the  log    com‐
2634                 mand is not specified in the submit file, DAGMan uses the log
2635                 command to specify the event log.
2636
2637
2638
2639          deferral_prep_time = <ClassAd Integer Expression>
2640                 The number of seconds prior to a job's deferral time that the
2641                 job may be matched and sent to an execution machine.
2642
2643                 The HTCondor User's manual section on Time Scheduling for Job
2644                 Execution has further details.
2645
2646
2647
2648          deferral_time = <ClassAd Integer Expression>
2649                 Allows a job to specify the time at which its execution is to
2650                 begin,  instead  of beginning execution as soon as it arrives
2651                 at the execution machine. The deferral time is an  expression
2652                 that  evaluates to a Unix Epoch timestamp (the number of sec‐
2653                 onds elapsed since 00:00:00 on January 1,  1970,  Coordinated
2654                 Universal  Time).  Deferral time is evaluated with respect to
2655                 the execution machine. This option delays the start of execu‐
2656                 tion,  but not the matching and claiming of a machine for the
2657                 job. If the job is not available and ready to begin execution
2658                 at  the deferral time, it has missed its deferral time. A job
2659                 that misses its deferral time will be  put  on  hold  in  the
2660                 queue.
2661
2662                 The HTCondor User's manual section on Time Scheduling for Job
2663                 Execution has further details.
2664
2665                 Due to implementation details, a deferral  time  may  not  be
2666                 used for scheduler universe jobs.
2667
2668
2669
2670          deferral_window = <ClassAd Integer Expression>
2671                 The  deferral  window  is used in conjunction with the defer‐
2672                 ral_time command to allow jobs that miss their deferral  time
2673                 to begin execution.
2674
2675                 The HTCondor User's manual section on Time Scheduling for Job
2676                 Execution has further details.
2677
2678
2679
2680          description = <string>
2681                 A string that sets the value of  the  job  ClassAd  attribute
2682                 JobDescription.  When set, tools which display the executable
2683                 such as condor_q will instead use this string.
2684
2685
2686
2687          email_attributes = <list-of-job-ad-attributes>
2688                 A comma-separated list of attributes from  the  job  ClassAd.
2689                 These  attributes  and  their  values will be included in the
2690                 e-mail notification of job completion.
2691
2692
2693
2694          image_size = <size>
2695                 Advice to HTCondor specifying the maximum virtual image  size
2696                 to  which  the  job  will grow during its execution. HTCondor
2697                 will then execute the job only on machines which have  enough
2698                 resources, (such as virtual memory), to support executing the
2699                 job. If not specified, HTCondor  will  automatically  make  a
2700                 (reasonably  accurate)  estimate about the job's size and ad‐
2701                 just this estimate as the program runs.  If specified and un‐
2702                 derestimated,  the  job may crash due to the inability to ac‐
2703                 quire more address space; for example, if malloc() fails.  If
2704                 the image size is overestimated, HTCondor may have difficulty
2705                 finding machines which have the required resources.  size  is
2706                 specified  in  KiB.  For example, for an image size of 8 MiB,
2707                 size should be 8000.
2708
2709
2710
2711          initialdir = <directory-path>
2712                 Used to give jobs a directory with respect to file input  and
2713                 output.  Also provides a directory (on the machine from which
2714                 the job is submitted) for the job event log, when a full path
2715                 is not specified.
2716
2717                 For  vanilla  universe jobs where there is a shared file sys‐
2718                 tem, it is the current working directory on the machine where
2719                 the job is executed.
2720
2721                 For  vanilla or grid universe jobs where file transfer mecha‐
2722                 nisms are utilized (there is not a shared file system), it is
2723                 the  directory on the machine from which the job is submitted
2724                 where the input files come from, and where the  job's  output
2725                 files go to.
2726
2727                 For  scheduler  universe jobs, it is the directory on the ma‐
2728                 chine from which the job is submitted where the job runs; the
2729                 current  working directory for file input and output with re‐
2730                 spect to relative path names.
2731
2732                 Note that the path to the executable is not relative to  ini‐
2733                 tialdir   ;  if  it is a relative path, it is relative to the
2734                 directory in which the condor_submit command is run.
2735
2736
2737
2738          job_ad_information_attrs = <attribute-list>
2739                 A comma-separated list of job ClassAd  attribute  names.  The
2740                 named  attributes  and  their  values  are written to the job
2741                 event log whenever any event is being  written  to  the  log.
2742                 This  implements the same thing as the configuration variable
2743                 EVENT_LOG_INFORMATION_ATTRS (see the  admin-manual/configura‐
2744                 tion-macros:daemon  logging configuration file entries page),
2745                 but it applies to the job event log, instead  of  the  system
2746                 event log.
2747
2748
2749
2750          job_lease_duration = <number-of-seconds>
2751                 For  vanilla,  parallel, VM, and java universe jobs only, the
2752                 duration in seconds of a job  lease.  The  default  value  is
2753                 2,400,  or  forty minutes. If a job lease is not desired, the
2754                 value can be explicitly set to 0 to disable the job lease se‐
2755                 mantics.  The  value  can  also  be a ClassAd expression that
2756                 evaluates to an integer. The HTCondor User's  manual  section
2757                 on Special Environment Considerations has further details.
2758
2759
2760
2761
2762          job_machine_attrs = <attr1, attr2, ...>
2763                 A  comma  and/or  space  separated  list of machine attribute
2764                 names that should be recorded in the job ClassAd in  addition
2765                 to  the  ones  specified by the condor_schedd daemon's system
2766                 configuration variable SYSTEM_JOB_MACHINE_ATTRS
2767                  . When there are multiple run attempts, history  of  machine
2768                 attributes from previous run attempts may be kept. The number
2769                 of run attempts to store may  be  extended  beyond  the  sys‐
2770                 tem-specified history length by using the submit file command
2771                 job_machine_attrs_history_length   .   A  machine   attribute
2772                 named X will be inserted into the job ClassAd as an attribute
2773                 named MachineAttrX0. The previous  value  of  this  attribute
2774                 will  be  named  MachineAttrX1,  the previous to that will be
2775                 named MachineAttrX2, and so on, up to the  specified  history
2776                 length.  A  history of length 1 means that only MachineAttrX0
2777                 will be recorded. The value recorded in the  job  ClassAd  is
2778                 the evaluation of the machine attribute in the context of the
2779                 job ClassAd when the condor_schedd daemon initiates the start
2780                 up  of  the job. If the evaluation results in an Undefined or
2781                 Error result, the value recorded in the job ad will be  Unde‐
2782                 fined or Error, respectively.
2783
2784
2785
2786          want_graceful_removal = <boolean expression>
2787                 If true, this job will be given a chance to shut down cleanly
2788                 when removed.  The job will be given as much time as the  ad‐
2789                 ministrator  of  the  execute  resource  allows, which may be
2790                 none.  The default is false.  For details, see the configura‐
2791                 tion setting GRACEFULLY_REMOVE_JOBS.
2792
2793
2794
2795          kill_sig = <signal-number>
2796                 When  HTCondor  needs to kick a job off of a machine, it will
2797                 send the job the signal specified by signal-number   .   sig‐
2798                 nal-number  needs  to  be an integer which represents a valid
2799                 signal on  the  execution  machine.   The  default  value  is
2800                 SIGTERM,  which is the standard way to terminate a program in
2801                 Unix.
2802
2803
2804
2805          kill_sig_timeout = <seconds>
2806                 This submit command should no longer be used as  of  HTCondor
2807                 version    7.7.3;   use   job_max_vacate_time   instead.   If
2808                 job_max_vacate_time is not defined, this defines  the  number
2809                 of seconds that HTCondor should wait following the sending of
2810                 the kill signal defined by kill_sig    and  forcibly  killing
2811                 the job. The actual amount of time between sending the signal
2812                 and forcibly killing the job is the smallest  of  this  value
2813                 and the configuration variable KILLING_TIMEOUT
2814                  , as defined on the execute machine.
2815
2816
2817
2818          load_profile = <True | False>
2819                 When True, loads the account profile of the dedicated run ac‐
2820                 count for Windows jobs. May not be used with run_as_owner  .
2821
2822
2823
2824          log_xml = <True | False>
2825                 If log_xml   is True, then the job event  log  file  will  be
2826                 written  in  ClassAd  XML. If not specified, XML is not used.
2827                 Note that the file is an XML fragment; it is missing the file
2828                 header and footer. Do not mix XML and non-XML within a single
2829                 file. If multiple jobs write to a single job event log  file,
2830                 ensure  that  all of the jobs specify this option in the same
2831                 way.
2832
2833
2834
2835          match_list_length = <integer value>
2836                 Defaults to the value zero (0). When match_list_length is de‐
2837                 fined with an integer value greater than zero (0), attributes
2838                 are inserted into the job ClassAd. The maximum number of  at‐
2839                 tributes defined is given by the integer value. The job Clas‐
2840                 sAds introduced are given as
2841
2842                     LastMatchName0 = "most-recent-Name"
2843                     LastMatchName1 = "next-most-recent-Name"
2844
2845                 The value for each introduced ClassAd is given by  the  value
2846                 of  the Name attribute from the machine ClassAd of a previous
2847                 execution (match). As a job is matched, the  definitions  for
2848                 these  attributes  will  roll,  with  LastMatchName1 becoming
2849                 LastMatchName2, LastMatchName0 becoming  LastMatchName1,  and
2850                 LastMatchName0 being set by the most recent value of the Name
2851                 attribute.
2852
2853                 An intended use of these job attributes is  in  the  require‐
2854                 ments  expression. The requirements can allow a job to prefer
2855                 a match with either the same or a different resource  than  a
2856                 previous match.
2857
2858
2859
2860          job_max_vacate_time = <integer expression>
2861                 An integer-valued expression (in seconds) that may be used to
2862                 adjust the time given to an evicted job for gracefully  shut‐
2863                 ting  down.  If the job's setting is less than the machine's,
2864                 the job's is used. If the job's setting is  larger  than  the
2865                 machine's,  the result depends on whether the job has any ex‐
2866                 cess retirement time. If the job  has  more  retirement  time
2867                 left than the machine's max vacate time setting, then retire‐
2868                 ment time will be converted into vacating  time,  up  to  the
2869                 amount requested by the job.
2870
2871                 Setting  this  expression  does not affect the job's resource
2872                 requirements or preferences. For a job to only run on  a  ma‐
2873                 chine  with  a  minimum MachineMaxVacateTime, or to preferen‐
2874                 tially run on such machines, explicitly specify this  in  the
2875                 requirements and/or rank expressions.
2876
2877
2878
2879          manifest = <True | False>
2880                 For  vanilla  and  Docker -universe jobs (and others that use
2881                 the shadow), specifies if HTCondor (the starter) should  pro‐
2882                 duce a "manifest", which is directory containing three files:
2883                 the list of files and directories at the  top  level  of  the
2884                 sandbox  when  file transfer in completes (in), the same when
2885                 file transfer out begins (out), and a dump of the environment
2886                 set for the job (env).
2887
2888                 This feature is not presently available for Windows.
2889
2890
2891
2892          manifest_dir = <directory name>
2893                 For  vanilla  and  Docker -universe jobs (and others that use
2894                 the shadow), specifies the directory in which to  record  the
2895                 manifest.   Specifying  this  enables the creation of a mani‐
2896                 fest.  By default, the manifest  directory  is  named  <clus‐
2897                 ter>_<proc>_manifest, to avoid conflicts.
2898
2899                 This feature is not presently available for Windows.
2900
2901
2902
2903          max_job_retirement_time = <integer expression>
2904                 An  integer-valued  expression (in seconds) that does nothing
2905                 unless the machine that runs the job has been  configured  to
2906                 provide  retirement  time.  Retirement time is a grace period
2907                 given to a job to finish when a resource claim is about to be
2908                 preempted.  The  default behavior in many cases is to take as
2909                 much retirement time as the machine offers, so  this  command
2910                 will rarely appear in a submit description file.
2911
2912                 When  a resource claim is to be preempted, this expression in
2913                 the submit file specifies the maximum run time of the job (in
2914                 seconds,  since  the job started). This expression has no ef‐
2915                 fect, if it is greater than the maximum retirement time  pro‐
2916                 vided  by  the  machine  policy. If the resource claim is not
2917                 preempted, this expression and the machine retirement  policy
2918                 are  irrelevant.  If  the resource claim is preempted the job
2919                 will be allowed to run until the retirement time expires,  at
2920                 which  point  it  is hard-killed. The job will be soft-killed
2921                 when it is getting close to the end of retirement in order to
2922                 give it time to gracefully shut down. The amount of lead-time
2923                 for soft-killing is determined by the maximum  vacating  time
2924                 granted to the job.
2925
2926                 Any  jobs  running  with  nice_user   priority have a default
2927                 max_job_retirement_time of 0, so no retirement time  is  uti‐
2928                 lized  by  default.  In  all other cases, no default value is
2929                 provided, so the maximum amount of retirement  time  is  uti‐
2930                 lized by default.
2931
2932                 Setting  this  expression  does not affect the job's resource
2933                 requirements or preferences. For a job to only run on  a  ma‐
2934                 chine  with  a  minimum MaxJobRetirementTime, or to preferen‐
2935                 tially run on such machines, explicitly specify this  in  the
2936                 requirements and/or rank expressions.
2937
2938
2939
2940          nice_user = <True | False>
2941                 Normally,  when  a machine becomes available to HTCondor, HT‐
2942                 Condor decides which job to run based upon user and job  pri‐
2943                 orities.  Setting  nice_user equal to True tells HTCondor not
2944                 to use your regular user priority, but that this  job  should
2945                 have last priority among all users and all jobs. So jobs sub‐
2946                 mitted in this fashion run only on machines  which  no  other
2947                 non-nice_user  job  wants - a true bottom-feeder job! This is
2948                 very handy if a user has some jobs they wish to run,  but  do
2949                 not  wish  to use resources that could instead be used to run
2950                 other people's HTCondor jobs. Jobs submitted in this  fashion
2951                 have  an  accounting  group.  The accounting group is config‐
2952                 urable by setting NICE_USER_ACCOUNTING_GROUP_NAME  which  de‐
2953                 faults to nice-user The default value is False.
2954
2955
2956
2957          noop_job = <ClassAd Boolean Expression>
2958                 When  this boolean expression is True, the job is immediately
2959                 removed from the queue, and HTCondor makes no attempt at run‐
2960                 ning  the  job. The log file for the job will show a job sub‐
2961                 mitted event and a job terminated event, along with  an  exit
2962                 code  of  0,  unless the user specifies a different signal or
2963                 exit code.
2964
2965
2966
2967          noop_job_exit_code = <return value>
2968                 When noop_job   is in the submit description file and  evalu‐
2969                 ates  to True, this command allows the job to specify the re‐
2970                 turn value as shown in the  job's  log  file  job  terminated
2971                 event.  If  not specified, the job will show as having termi‐
2972                 nated with status 0. This overrides any value specified  with
2973                 noop_job_exit_signal  .
2974
2975
2976
2977          noop_job_exit_signal = <signal number>
2978                 When  noop_job   is in the submit description file and evalu‐
2979                 ates to True, this command allows the job to specify the sig‐
2980                 nal  number that the job's log event will show the job having
2981                 terminated with.
2982
2983
2984
2985          remote_initialdir = <directory-path>
2986                 The path specifies the directory in which the job  is  to  be
2987                 executed on the remote machine.
2988
2989
2990
2991          rendezvousdir = <directory-path>
2992                 Used  to  specify the shared file system directory to be used
2993                 for file system authentication when submitting  to  a  remote
2994                 scheduler. Should be a path to a preexisting directory.
2995
2996
2997
2998          run_as_owner = <True | False>
2999                 A boolean value that causes the job to be run under the login
3000                 of the submitter, if supported by the joint configuration  of
3001                 the  submit and execute machines. On Unix platforms, this de‐
3002                 faults to True, and on  Windows  platforms,  it  defaults  to
3003                 False. May not be used with load_profile  .  See the HTCondor
3004                 manual Platform-Specific Information chapter for  administra‐
3005                 tive details on configuring Windows to support this option.
3006
3007
3008
3009          stack_size = <size in bytes>
3010                 This  command  applies  only  to Linux platforms.  An integer
3011                 number of bytes, representing the amount of stack space to be
3012                 allocated  for the job. This value replaces the default allo‐
3013                 cation of stack space, which is unlimited in size.
3014
3015
3016
3017          submit_event_notes = <note>
3018                 A string that is appended to the submit event  in  the  job's
3019                 log  file.   For  DAGMan  jobs,  the string DAG Node: and the
3020                 node's name is automatically defined for  submit_event_notes,
3021                 causing  the logged submit event to identify the DAG node job
3022                 submitted.
3023
3024
3025
3026          ulog_execute_attrs = <attribute-list>
3027                 A comma-separated list of machine  ClassAd  attribute  names.
3028                 The  named attributes and their values are written as part of
3029                 the execution event in the job event log.
3030
3031
3032
3033          use_oauth_services = <list of credential service names>
3034                 A comma-separated list of credential-providing service  names
3035                 for  which the job should be provided credentials for the job
3036                 execution environment. The credential service providers  must
3037                 be configured by the pool admin.
3038
3039          <credential_service_name>_oauth_permissions[_<handle>] = <scope>
3040                 A string containing the scope(s) that should be requested for
3041                 the  credential  named  <credential_service_name>[_<handle>],
3042                 where  <handle>  is  optionally provided to differentiate be‐
3043                 tween multiple credentials from the same  credential  service
3044                 provider.
3045
3046          <credential_service_name>_oauth_resource[_<handle>] = <resource>
3047                 A  string containing the resource (or "audience") that should
3048                 be  requested  for  the  credential  named   <credential_ser‐
3049                 vice_name>[_<handle>],  where <handle> is optionally provided
3050                 to differentiate between multiple credentials from  the  same
3051                 credential service provider.
3052
3053          MY.<attribute> = <value> or +<attribute> = <value>
3054                 A macro that begins with MY. or a line that begins with a '+'
3055                 (plus) character instructs condor_submit to insert the  given
3056                 attribute  (without  +  or MY.) into the job ClassAd with the
3057                 given value. The macro can  be  referenced  in  other  submit
3058                 statements by using $(MY.<attribute>). A +<attribute> is con‐
3059                 verted to MY.<attribute> when the file is read.
3060
3061                 Note that setting an job attribute in this way should not  be
3062                 used  in  place of one of the specific commands listed above.
3063                 Often, the command name does not directly  correspond  to  an
3064                 attribute  name;  furthermore, many submit commands result in
3065                 actions more complex than simply setting an attribute or  at‐
3066                 tributes.  See  Job ClassAd Attributes for a list of HTCondor
3067                 job attributes.
3068
3069       MACROS AND COMMENTS
3070
3071
3072       In addition to commands, the submit description file can contain macros
3073       and comments.
3074
3075          Macros Parameterless macros in the form of $(macro_name:default ini‐
3076                 tial value) may be used anywhere in HTCondor submit  descrip‐
3077                 tion  files  to  provide textual substitution at submit time.
3078                 Macros can be defined by lines in the form of
3079
3080                     <macro_name> = <string>
3081
3082                 Several pre-defined macros are supplied  by  the  submit  de‐
3083                 scription  file  parser. The $(Cluster) or $(ClusterId) macro
3084                 supplies the value of the
3085
3086                  ClusterId job  ClassAd  attribute,  and  the  $(Process)  or
3087                 $(ProcId)  macro supplies the value of the ProcId job ClassAd
3088                 attribute.  The $(JobId) macro supplies the full job  id.  It
3089                 is  equivalent  to  $(ClusterId).$(ProcId).  These macros are
3090                 intended to aid in the specification of  input/output  files,
3091                 arguments, etc., for clusters with lots of jobs, and/or could
3092                 be used to supply an HTCondor process with  its  own  cluster
3093                 and process numbers on the command line.
3094
3095                 The  $(Node) macro is defined for parallel universe jobs, and
3096                 is especially relevant for MPI applications. It is  a  unique
3097                 value  assigned  for the duration of the job that essentially
3098                 identifies the machine (slot) on which a program  is  execut‐
3099                 ing.  Values  assigned start at 0 and increase monotonically.
3100                 The values are assigned as  the  parallel  job  is  about  to
3101                 start.
3102
3103                 Recursive  definition of macros is permitted. An example of a
3104                 construction that works is the following:
3105
3106                     foo = bar
3107                     foo =  snap $(foo)
3108
3109                 As a result, foo = snap bar.
3110
3111                 Note that both left- and right- recursion works, so
3112
3113                     foo = bar
3114                     foo =  $(foo) snap
3115
3116                 has as its result foo = bar snap.
3117
3118                 The construction
3119
3120                     foo = $(foo) bar
3121
3122                 by itself will not work, as it does not have an initial  base
3123                 case.  Mutually recursive constructions such as:
3124
3125                     B = bar
3126                     C = $(B)
3127                     B = $(C) boo
3128
3129                 will not work, and will fill memory with expansions.
3130
3131                 A default value may be specified, for use if the macro has no
3132                 definition. Consider the example
3133
3134                     D = $(E:24)
3135
3136                 Where E is not defined within the  submit  description  file,
3137                 the default value 24 is used, resulting in
3138
3139                     D = 24
3140
3141                 This is useful for creating submit templates where values can
3142                 be passed on the condor_submit command line, but that have  a
3143                 default  value  as well.  In the above example, if you give a
3144                 value for E on the command line like this
3145
3146                     condor_submit E=99 <submit-file>
3147
3148                 The value of 99 is used for E, resulting in
3149
3150                     D = 99
3151
3152
3153
3154                 To use the dollar sign character ($) as  a  literal,  without
3155                 macro expansion, use
3156
3157                     $(DOLLAR)
3158
3159                 In addition to the normal macro, there is also a special kind
3160                 of macro called a substitution macro
3161                  that allows the substitution of a machine ClassAd  attribute
3162                 value  defined on the resource machine itself (gotten after a
3163                 match to the machine has been made)  into  specific  commands
3164                 within the submit description file. The substitution macro is
3165                 of the form:
3166
3167                     $$(attribute)
3168
3169                 As this form of the  substitution  macro  is  only  evaluated
3170                 within  the  context  of  the machine ClassAd, use of a scope
3171                 resolution prefix TARGET. or MY. is not allowed.
3172
3173                 A common use of this form of the substitution  macro  is  for
3174                 the heterogeneous submission of an executable:
3175
3176                     executable = povray.$$(OpSys).$$(Arch)
3177
3178                 Values  for  the OpSys and Arch attributes are substituted at
3179                 match time for any given resource. This example allows HTCon‐
3180                 dor  to  automatically  choose the correct executable for the
3181                 matched machine.
3182
3183                 An extension to the syntax of the substitution macro provides
3184                 an  alternative string to use if the machine attribute within
3185                 the substitution macro is undefined. The syntax appears as:
3186
3187                     $$(attribute:string_if_attribute_undefined)
3188
3189                 An example using this extended syntax provides a path name to
3190                 a  required  input file. Since the file can be placed in dif‐
3191                 ferent locations on different machines, the file's path  name
3192                 is given as an argument to the program.
3193
3194                     arguments = $$(input_file_path:/usr/foo)
3195
3196                 On  the  machine, if the attribute input_file_path is not de‐
3197                 fined, then the path /usr/foo is used instead.
3198
3199                 As a special case that only works within the submit file  en‐
3200                 vironment  command,  the  string  $$(CondorScratchDir) is ex‐
3201                 panded to the value of the  job's  scratch  directory.   This
3202                 does not work for scheduler universe or grid universe jobs.
3203
3204                 For  example,  to set PYTHONPATH to a subdirectory of the job
3205                 scratch dir, one could set
3206
3207                     environment = PYTHONPATH=$$(CondorScratchDir)/some/directory
3208
3209                 A further extension to the syntax of the  substitution  macro
3210                 allows  the  evaluation of a ClassAd expression to define the
3211                 value. In this form, the expression may refer to machine  at‐
3212                 tributes  by prefacing them with the TARGET. scope resolution
3213                 prefix. To place a ClassAd expression into  the  substitution
3214                 macro,  square  brackets are added to delimit the expression.
3215                 The syntax appears as:
3216
3217                     $$([ClassAd expression])
3218
3219                 An example of a job that uses this syntax  may  be  one  that
3220                 wants  to  know  how  much memory it can use. The application
3221                 cannot detect this itself, as it would potentially use all of
3222                 the memory on a multi-slot machine. So the job determines the
3223                 memory per slot, reducing it by 10% to account for  miscella‐
3224                 neous overhead, and passes this as a command line argument to
3225                 the application. In the submit description file will be
3226
3227                     arguments = --memory $$([TARGET.Memory * 0.9])
3228
3229
3230
3231                 To insert two dollar sign characters ($$) as literals into  a
3232                 ClassAd string, use
3233
3234                     $$(DOLLARDOLLAR)
3235
3236
3237
3238
3239
3240                 The  environment macro, $ENV, allows the evaluation of an en‐
3241                 vironment variable to be used in setting a submit description
3242                 file command.  The syntax used is
3243
3244                     $ENV(variable)
3245
3246                 An  example  submit  description  file command that uses this
3247                 functionality evaluates the submitter's home directory in or‐
3248                 der to set the path and file name of a log file:
3249
3250                     log = $ENV(HOME)/jobs/logfile
3251
3252                 The  environment  variable  is  evaluated when the submit de‐
3253                 scription file is processed.
3254
3255
3256
3257
3258                 The $RANDOM_CHOICE macro allows a random choice  to  be  made
3259                 from  a  given  list of parameters at submission time. For an
3260                 expression, if some randomness needs  to  be  generated,  the
3261                 macro may appear as
3262
3263                     $RANDOM_CHOICE(0,1,2,3,4,5,6)
3264
3265                 When evaluated, one of the parameters values will be chosen.
3266
3267          Comments
3268                 Blank lines and lines beginning with a pound sign ('#') char‐
3269                 acter are ignored by the submit description file parser.
3270

SUBMIT VARIABLES

3272       While processing the queue command in a submit file or from the command
3273       line,  condor_submit  will  set  the values of several automatic submit
3274       variables so that they can be referred to by statements in  the  submit
3275       file. With the exception of Cluster and Process, if these variables are
3276       set by the submit file, they will not be modified during  queue    pro‐
3277       cessing.
3278
3279          ClusterId
3280                 Set  to  the  integer value that the ClusterId attribute that
3281                 the job ClassAd will have when the job is submitted. All jobs
3282                 in  a single submit will normally have the same value for the
3283                 ClusterId. If the -dry-run argument is specified,  The  value
3284                 will be 1.
3285
3286          Cluster
3287                 Alternate  name for the ClusterId submit variable. Before HT‐
3288                 Condor version 8.4 this was the only name.
3289
3290          ProcId Set to the integer value that the ProcId attribute of the job
3291                 ClassAd  will  have when the job is submitted. The value will
3292                 start at 0 and increment by 1 for each job submitted.
3293
3294          Process
3295                 Alternate name for the ProcId submit variable. Before  HTCon‐
3296                 dor version 8.4 this was the only name.
3297
3298          JobId  Set  to  $(ClusterId).$(ProcId) so that it will expand to the
3299                 full id of the job.
3300
3301          Node   For parallel universes, set to the  value  #pArAlLeLnOdE#  or
3302                 #MpInOdE#  depending  on the parallel universe type For other
3303                 universes it is set to nothing.
3304
3305          Step   Set to the step value as it varies from 0 to N-1 where  N  is
3306                 the  number  provided  on the queue   argument. This variable
3307                 changes at the same rate as ProcId when it  changes  at  all.
3308                 For  submit files that don't make use of the queue number op‐
3309                 tion, Step will always be 0. For submit files that don't make
3310                 use  of  any of the foreach options, Step and ProcId will al‐
3311                 ways be the same.
3312
3313          ItemIndex
3314                 Set to the index within the item list being processed by  the
3315                 various  queue  foreach  options. For submit files that don't
3316                 make use of any queue foreach list, ItemIndex will always  be
3317                 0  For  submit  files that make use of a slice to select only
3318                 some items in a foreach list, ItemIndex will only be  set  to
3319                 selected values.
3320
3321          Row    Alternate name for ItemIndex.
3322
3323          Item   when  a  queue foreach option is used and no variable list is
3324                 supplied, this variable will be set to the value of the  cur‐
3325                 rent item.
3326
3327       The  automatic  variables below are set before parsing the submit file,
3328       and will not vary during processing unless the submit file itself  sets
3329       them.
3330
3331          ARCH   Set  to  the  CPU  architecture  of  the machine running con‐
3332                 dor_submit.  The value will be the same as the automatic con‐
3333                 figuration variable of the same name.
3334
3335          OPSYS  Set  to  the name of the operating system on the machine run‐
3336                 ning condor_submit. The value will be the same as  the  auto‐
3337                 matic configuration variable of the same name.
3338
3339          OPSYSANDVER
3340                 Set  to the name and major version of the operating system on
3341                 the machine running condor_submit. The value will be the same
3342                 as the automatic configuration variable of the same name.
3343
3344          OPSYSMAJORVER
3345                 Set  to  the major version of the operating system on the ma‐
3346                 chine running condor_submit. The value will be  the  same  as
3347                 the automatic configuration variable of the same name.
3348
3349          OPSYSVER
3350                 Set  to  the  version  of the operating system on the machine
3351                 running condor_submit. The value will be the same as the  au‐
3352                 tomatic configuration variable of the same name.
3353
3354          SPOOL  Set  to  the  full  path of the HTCondor spool directory. The
3355                 value will be the same as the automatic  configuration  vari‐
3356                 able of the same name.
3357
3358          IsLinux
3359                 Set  to  true  if the operating system of the machine running
3360                 condor_submit is a Linux variant. Set to false otherwise.
3361
3362          IsWindows
3363                 Set to true if the operating system of  the  machine  running
3364                 condor_submit  is  a  Microsoft Windows variant. Set to false
3365                 otherwise.
3366
3367          SUBMIT_FILE
3368                 Set to the full pathname of the submit file  being  processed
3369                 by condor_submit. If submit statements are read from standard
3370                 input, it is set to nothing.
3371
3372          SUBMIT_TIME
3373                 Set to the unix timestamp of the current time when the job is
3374                 submitted.
3375
3376          YEAR   Set to the 4 digit year when the job is submitted.
3377
3378          MONTH  Set to the 2 digit month when the job is submitted.
3379
3380          DAY    Set to the 2 digit day when the job is submitted.
3381

EXIT STATUS

3383       condor_submit  will  exit with a status value of 0 (zero) upon success,
3384       and a non-zero value upon failure.
3385

EXAMPLES

3387       • Submit Description File Example 1: This example queues three jobs for
3388         execution by HTCondor. The first will be given command line arguments
3389         of 15 and 2000, and it will write its standard  output  to  foo.out1.
3390         The  second  will be given command line arguments of 30 and 2000, and
3391         it will write its standard output to foo.out2.  Similarly  the  third
3392         will  have arguments of 45 and 6000, and it will use foo.out3 for its
3393         standard output. Standard error output (if any) from all  three  pro‐
3394         grams will appear in foo.error.
3395
3396            ####################
3397            #
3398            # submit description file
3399            # Example 1: queuing multiple jobs with differing
3400            # command line arguments and output files.
3401            #
3402            ####################
3403
3404            Executable     = foo
3405            Universe       = vanilla
3406
3407            Arguments      = 15 2000
3408            Output  = foo.out0
3409            Error   = foo.err0
3410            Queue
3411
3412            Arguments      = 30 2000
3413            Output  = foo.out1
3414            Error   = foo.err1
3415            Queue
3416
3417            Arguments      = 45 6000
3418            Output  = foo.out2
3419            Error   = foo.err2
3420            Queue
3421
3422         Or  you  can get the same results as the above submit file by using a
3423         list of arguments with the Queue statement
3424
3425            ####################
3426            #
3427            # submit description file
3428            # Example 1b: queuing multiple jobs with differing
3429            # command line arguments and output files, alternate syntax
3430            #
3431            ####################
3432
3433            Executable     = foo
3434            Universe       = vanilla
3435
3436            # generate different output and error filenames for each process
3437            Output  = foo.out$(Process)
3438            Error   = foo.err$(Process)
3439
3440            Queue Arguments From (
3441              15 2000
3442              30 2000
3443              45 6000
3444            )
3445
3446       • Submit Description File Example 2: This submit description file exam‐
3447         ple  queues 150 runs of program foo which must have been compiled and
3448         linked for an Intel x86 processor running RHEL 3.  HTCondor will  not
3449         attempt  to  run  the  processes  on machines which have less than 32
3450         Megabytes of physical memory, and it will run them on machines  which
3451         have  at  least  64 Megabytes, if such machines are available. Stdin,
3452         stdout, and stderr will refer to in.0, out.0, and err.0 for the first
3453         run of this program (process 0). Stdin, stdout, and stderr will refer
3454         to in.1, out.1, and err.1 for process 1, and so  forth.  A  log  file
3455         containing  entries  about  where  and  when HTCondor runs, transfers
3456         file, if it's evicted, and when it terminates,  among  other  things,
3457         the  various  processes  in  this  cluster  will be written into file
3458         foo.log.
3459
3460            ####################
3461            #
3462            # Example 2: Show off some fancy features including
3463            # use of pre-defined macros and logging.
3464            #
3465            ####################
3466
3467            Executable     = foo
3468            Universe       = vanilla
3469            Requirements   = OpSys == "LINUX" && Arch =="INTEL"
3470            Rank           = Memory >= 64
3471            Request_Memory = 32 Mb
3472            Image_Size     = 28 Mb
3473
3474            Error   = err.$(Process)
3475            Input   = in.$(Process)
3476            Output  = out.$(Process)
3477            Log = foo.log
3478            Queue 150
3479
3480       • Submit  Description  File  Example  3:  This  example   targets   the
3481         /bin/sleep program to run only on a platform running a RHEL 6 operat‐
3482         ing system. The example presumes that the pool contains machines run‐
3483         ning  more than one version of Linux, and this job needs the particu‐
3484         lar operating system to run correctly.
3485
3486            ####################
3487            #
3488            # Example 3: Run on a RedHat 6 machine
3489            #
3490            ####################
3491            Universe     = vanilla
3492            Executable   = /bin/sleep
3493            Arguments    = 30
3494            Requirements = (OpSysAndVer == "RedHat6")
3495
3496            Error   = err.$(Process)
3497            Input   = in.$(Process)
3498            Output  = out.$(Process)
3499            Log     = sleep.log
3500            Queue
3501
3502       • Command Line example: The following command uses the  -append  option
3503         to  add  two  commands before the job(s) is queued. A log file and an
3504         error log file are specified. The  submit  description  file  is  un‐
3505         changed.
3506
3507            $ condor_submit -a "log = out.log" -a "error = error.log" mysubmitfile
3508
3509         Note  that each of the added commands is contained within quote marks
3510         because there are space characters within the command.
3511
3512periodic_remove example: A job should be removed from the  queue,  if
3513         the  total  suspension  time  of the job is more than half of the run
3514         time of the job.
3515
3516         Including the command
3517
3518            periodic_remove = CumulativeSuspensionTime >
3519                              ((RemoteWallClockTime - CumulativeSuspensionTime) / 2.0)
3520
3521         in the submit description file causes this to happen.
3522

GENERAL REMARKS

3524       • For security reasons, HTCondor will refuse to run any jobs  submitted
3525         by  user  root  (UID  =  0) or by a user whose default group is group
3526         wheel (GID = 0). Jobs submitted by user root or a user with a default
3527         group  of  wheel  will  appear to sit forever in the queue in an idle
3528         state.
3529
3530       • All path names specified in the submit description file must be  less
3531         than  256  characters  in  length, and command line arguments must be
3532         less than 4096 characters in length; otherwise, condor_submit gives a
3533         warning message but the jobs will not execute properly.
3534
3535       • Somewhat  understandably, behavior gets bizarre if the user makes the
3536         mistake of requesting multiple HTCondor jobs to  write  to  the  same
3537         file, and/or if the user alters any files that need to be accessed by
3538         an HTCondor job which is still in the queue. For  example,  the  com‐
3539         pressing of data or output files before an HTCondor job has completed
3540         is a common mistake.
3541

SEE ALSO

3543       HTCondor User Manual
3544

AUTHOR

3546       HTCondor Team
3547
3549       1990-2023, Center for High Throughput Computing, Computer Sciences  De‐
3550       partment,  University  of  Wisconsin-Madison, Madison, WI, US. Licensed
3551       under the Apache License, Version 2.0.
3552
3553
3554
3555
3556                                 Oct 02, 2023                 CONDOR_SUBMIT(1)
Impressum