CONDOR_SUBMIT_DAG(1)
β¨ condor_submit_dag(1) β HTCondor Manual β¨
okay bestie, gather round, because this one is a whole moment π
π NAME π
condor_submit_dag β HTCondor Manual
Place a node scheduler job with the local AP to manage job workflow described as a Direct Acyclic Graph (DAG). periodt.
πΈ SYNOPSIS πΈ
condor_submit_dag [-help | -version]
condor_submit_dag [OPTIONS] DAG_file [DAG_file...]
condor_submit_dag [-no_submit] [-v/-verbose] [-f/-force] [-dagman path]
[-notification value] [-debug level] [-MaxIdle N] [-MaxJobs N] [-MaxPre
N] [-MaxPost N] [-MaxHold N] [-suppress_notification |
-dont_suppress_notification] [-SubmitMethod value] [-UseDagDir]
[-outfile_dir path] [-config filename] [-Lockfile filename]
[-insert_sub_file filename] [-a/-append command] [-batch-name name]
[-AutoRescue <0|1>] [-DoRescueFrom N] [-load_save filename]
[-DoRecovery] [-AllowVersionMismatch] [-no_recurse | -do_recurse]
[-update_submit] [-import_env] [-include_env variable[,variable...]]
[-insert_env key=value[;key=value...]] [-valgrind] [-DontAlwaysRunPost |
-AlwaysRunPost] [-priority N] [-r/-remote schedd_name]
[-schedd-daemon-ad-file filename] [-schedd-address-file filename]
[-RescueFile filename] [-terse]
likeβ¦ yes, that's a lot of brackets. she's thorough. π
π« DESCRIPTION π«
Automatically produce and place a scheduler universe job to execute HTCondor's DAGMan workflow manager on a list of specified Directed Acyclic Graphs (DAGs) of HTCondor jobs. Extensive documentation is in the HTCondor DAGMan Workflows Section.
so basically: you hand her your DAG files, she builds the job and yeets it at the scheduler universe so DAGMan can run the whole workflow for you. iconic behavior, no notes. π¦
β¨ OPTIONS β¨
-helpβ Display usage information.-versionβ Display version information.-no_submitβ Produce the HTCondor submit description file for DAGMan, but do not submit DAGMan as an HTCondor job. (she makes the paperwork, she just doesn't file it π«Ά)-v/-verboseβ Causecondor_submit_dagto give verbose error messages.-terseβ Display only the resulting DAGMan job id on success.-f/-forceβ Don't fail to place DAGMan job to AP if previous execution files are discovered. Previous execution files (except the*.dagman.out) are cleaned up and old rescue files are renamed.-dagman pathβ Specify a path to acondor_dagmanexecutable to be executed rather than the installed one discovered in user's path.-MaxIdle Nβ Set the maximum number of idle jobs allowed before placing more jobs to the AP. If not specified then this is set to the value ofDAGMAN_MAX_JOBS_IDLE.
NOTE: condor_dagman can place jobs beyond this threshold in a single job placement cycle, but won't place more jobs until the detected number of idle jobs drops below the specified threshold again.
-MaxJobs Nβ Set the maximum number of nodes that have placed a list of jobs to the AP at any given moment. If not specified then this is set to the value ofDAGMAN_MAX_JOBS_SUBMITTED.-MaxPre Nβ Set the maximum number of PRE scripts being executed at any given moment. If not specified then this value is set toDAGMAN_MAX_PRE_SCRIPTS.-MaxPost Nβ Set the maximum number of POST scripts being executed at any given moment. If not specified then this value is set toDAGMAN_MAX_POST_SCRIPTS.-MaxHold Nβ Set the maximum number of HOLD scripts being executed at any given moment. If not specified then this value is set toDAGMAN_MAX_HOLD_SCRIPTS.-notification valueβ Set the e-mail notification for DAGMan itself.-r/-remote schedd_nameβ Specify acondor_scheddon a remote machine to place the DAGMan job.
NOTE: Since DAGMan expects all necessary files to be present in it's working directory, all files used by DAGMan need to be present on the remote machine via some method like a shared filesystem. (yes bestie, shared filesystem, don't skip this part π)
-debug levelβ Set the DAGMan debug log level (see below for levels).-UseDagDirβ Inform DAGMan to execute each specified DAG from their respective directories.-outfile_dir pathβ Specify the path to a directory for DAGMan's*.dagman.outdebug log to be written.-config filenameβ Specify an HTCondor configuration file to a specific DAGMan instance's execution.
NOTE: Only one configuration file can be specified which will cause a failure if used in conjunction with the CONFIG command.
-Lockfile filenameβ Path to a file to write DAGMan's process information. This prevents other DAGMan processes executing the same DAG(s) from being executed in the same directory.-insert_sub_file filenameβ Specify a file containing JDL submit commands to be inserted in the produced DAGMan job submit description (*.condor.sub).
NOTE: Only one extra submit description file can be specified. So, the specified file will override any file specified via DAGMAN_INSERT_SUB_FILE
-a/-append commandβ Specify JDL commands to insert into the produced DAGMan job submit description (*.condor.sub). Can be used multiple times to add multiple JDL commands. Commands with spaces in them must be enclosed in double quotes.
NOTE: JDL commands specified via-appendtake precedence over any commands added via-insert_sub_fileorDAGMAN_INSERT_SUB_FILE.
-batch-name nameβ Set theJobBatchNameto name for DAGMan and all jobs managed by DAGMan.-AutoRescue <0|1>β Automatically detect rescue DAG files upon startup and rescue from the most recent (highest number) rescue file discovered.0is False. Default1is True.-DoRescueFrom Nβ Specify a specific rescue number to locate and restore state from.-RescueFile filenameβ Specify a specific rescue file by name to restore state from.-load_save filenameβ Specify a specificSAVE_POINT_FILEto restore state from. If provided a path DAGMan will attempt to read that file following that path. Otherwise, DAGMan will check for the file in the DAG'ssave_filessub-directory.-DoRecoveryβ Inform DAGMan to startup in recovery mode (restore state from*.nodes.log).-AllowVersionMismatchβ Allow a version difference betweencondor_dagmanitself and the*.condor.subfile produced bycondor_submit_dag.
WARNING: This option should only be used if absolutely necessary because version mismatches can cause subtle problems when running DAGMan. (bestie I am BEGGING you, only if there's literally no other way π)
-no_recurseβ Don't recursively pre-produce SUBDAG's submit description files prior to placing root DAG to the AP.-do_recurseβ Recursively pre-produce all SUBDAG's submit description files prior to placing the root DAG to the AP.-update_submitβ Don't treat an existing DAGMan submit description file (*.condor.sub) as an error; rather update the file while preserving the-maxjobs,-maxidle,-maxpre, and-maxpostoptions (if specified).-import_envβ Informcondor_submit_dagto import the current shell environment into the produced DAGMan submit description file's environment command.-include_env variable[,variable...]β Specify a comma separated list of environment variables to add to the produced DAGMan submit description file'sgetenvcommand.-insert_env key=value[;key=value...]β Specify a delimited string ofkey=valuepairs to explicitly set into the produced DAGMan submit description file's environment command. If the same key is specified multiple times then the last occurrences value takes precedence.
NOTE: The base delimiter is a semicolon that can be overridden by setting the first character in the string to a valid delimiting character.
$ condor_submit_dag -insert_env |foo=0|bar=1|baz=2
see? the first char | became the delimiter. she's flexible like that π
-valgrindβ Run DAGMan under valgrind.
NOTE: This is option is intended for testing and development of DAGMan. The DAGMan execution speed is drastically reduced.
WARNING: Failure will occur if necessary valgrind is not installed. valgrind is only available of Linux OS.
-DontAlwaysRunPostβ Always execute POST scripts even upon failure of any PRE scripts.-AlwaysRunPostβ Only execute POST scripts after a node's list of jobs have completed (Success or Failure). Default.-priority Nβ Set the minimumJobPriofor jobs managed by DAGMan.-schedd-daemon-ad-file filenameβ Specifies a full path to a daemon ad file for a specificcondor_scheddto place the DAGMan job.-schedd-address-file filenameβ Specifies a full path to an address file for a specificcondor_scheddto place the DAGMan job.-suppress_notificationβ Suppress email notifications for all jobs managed by DAGMan.-dont_suppress_notificationβ Allow email notifications for any jobs managed by DAGMan that have notifications specified. Default.-SubmitMethod valueβ Specify how DAGMan will place managed jobs to the AP (see values below).
π¬ GENERAL REMARKS π¬
NOTE: every single command line flag is case insensitive, bestie.-FORCE,-force,-FoRcEβ¦ the parser does not care, it's an icon like that. π
Some of the command line options also have matching configuration values, okay? But here's the tea β if you pass a value on the command line, that value wins. Command line takes precedence over anything you configured. No negotiations. π
And some of the command line options get passed down to DAGMan itself, to use when it's executing SUBDAGs. So your settings travel. β¨
π§Έ Debug Level Values
These are the levels you can hand to the debug option, and what each one actually gives you:
0β Never produce output, except for usage info. Silence. Absolutely nothing else. π1β Very quiet. Only outputs severe errors. Like, severe severe. π2β Normal output and error messages. π3β (Default) Print warnings. This is the one you get if you say nothing at all. π4β Internal debugging output. π5β Outer loop debugging. π6β Inner loop debugging. π7β Output parsed DAG input lines. Every line the parser ate, shown to you. kinda iconic ngl π
π Submit Method Values
How the job(s) actually get submitted:
0β Runcondor_submit. Classic route. π£οΈ1β Direct place job(s) to localcondor_schedd. Straight to the source, no middleman. π₯
π¦ EXIT STATUS π¦
0β Success. Slay. π1β Failure. Not slay. π
π EXAMPLES π
Okay bestie, here's every example, and they're all giving "just copy me":
Execute a single DAG:
$ condor_submit_dag sample.dag
Execute a single DAG that has successfully completed once already:
$ condor_submit_dag -force sample.dag
Execute a DAG with a max threshold of 10 idle jobs:
$ condor_submit_dag -maxidle 10 sample.dag
Execute a DAG with a max limit of 10 PRE scripts and 5 POST scripts executing concurrently:
$ condor_submit_dag -maxpre 10 -maxpost 5 sample.dag
Execute multiple DAGs:
$ condor_submit_dag first.dag second.dag
Execute multiple DAGs in their respective directories:
$ condor_submit_dag -usedagdir subdir1/first.dag subdir2/second.dag
Execute DAG and notify user once DAG is complete:
$ condor_submit_dag -notification complete sample.dag
Execute DAG with a custom batch name:
$ condor_submit_dag -batch-name my-awesome-dag sample.dag
Execute DAG and restore state from specific rescue file:
$ condor_submit_dag -RescueFile simple.dag.rescue008 simple.dag
Execute DAG and restore state from specific rescue number 8:
$ condor_submit_dag -dorescuefrom 8 sample.dag
Execute DAG and restore state from save file post-analysis.save:
$ condor_submit_dag -load_save post-analysis.save sample.dag
Execute DAG and suppress all job e-mail notifications:
$ condor_submit_dag -suppress_notification sample.dag
π SEE ALSO π
None. πΆ There is nothing else to see. Just this. Just us. π
π₯οΈ AVAILABILITY π₯οΈ
Linux, MacOS, Windows β she runs everywhere, she's versatile like that. π¦
βοΈ AUTHOR βοΈ
HTCondor Team β the whole squad, collectively, as one. π«Ά
Β©οΈ COPYRIGHT Β©οΈ
1990-2026, Center for High Throughput Computing, Computer Sciences Department, University of Wisconsin-Madison, Madison, WI, US. Licensed under the Apache License, Version 2.0.
π and that's the whole page bestie!! π
This one came from the condor_submit_dag source, dated Oct 16, 2026 β go forth and submit those DAGs, you absolute main character. periodt. ππ
πΈ
π¦ where this page comes from
- fedora 43: condor 25.14.1-1.fc43 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms